コード例 #1
0
        private void TestPongs(IList <Tile> handTiles, Tile discardTile, MeldSide side,
                               IList <OutTurnOperation> operations)
        {
            if (!gameSettings.AllowPongs)
            {
                return;
            }
            var pongs = MahjongLogic.GetPongs(handTiles, discardTile, side);

            if (pongs.Any())
            {
                foreach (var pong in pongs)
                {
                    operations.Add(new OutTurnOperation
                    {
                        Type           = OutTurnOperationType.Pong,
                        Tile           = discardTile,
                        Meld           = pong,
                        ForbiddenTiles = gameSettings.AllowDiscardSameAfterOpen
                                                        ? null
                                                        : pong.GetForbiddenTiles(discardTile)
                    });
                }
            }
        }
コード例 #2
0
ファイル: MahjongLogicTest.cs プロジェクト: Pircs/NaoMahjong
    public static void TestPongs()
    {
        var handTiles = new List <Tile> {
            new Tile(Suit.M, 1), new Tile(Suit.M, 2), new Tile(Suit.M, 3), new Tile(Suit.M, 4), new Tile(Suit.M, 4),
            new Tile(Suit.M, 5), new Tile(Suit.M, 5), new Tile(Suit.M, 5, true)
        };
        var result = MahjongLogic.GetPongs(handTiles, new Tile(Suit.M, 4), MeldSide.Opposite);

        Debug.Log($"Melds: {string.Join(",", result)}");
        result = MahjongLogic.GetPongs(handTiles, new Tile(Suit.M, 5), MeldSide.Opposite);
        Debug.Log($"Melds: {string.Join(",", result)}");
        result = MahjongLogic.GetPongs(handTiles, new Tile(Suit.M, 5, true), MeldSide.Opposite);
        Debug.Log($"Melds: {string.Join(",", result)}");
        handTiles = new List <Tile> {
            new Tile(Suit.M, 1), new Tile(Suit.M, 2), new Tile(Suit.M, 3), new Tile(Suit.M, 4), new Tile(Suit.M, 4),
            new Tile(Suit.M, 5), new Tile(Suit.M, 5), new Tile(Suit.M, 5)
        };
        result = MahjongLogic.GetPongs(handTiles, new Tile(Suit.M, 5, true), MeldSide.Opposite);
        Debug.Log($"Melds: {string.Join(",", result)}");
    }