Пример #1
0
    public RobTriangle[] createP3Tile(string tileType, Vector3 ver1, Vector3 ver2, Vector3 ver3, Vector3 ver4, float rotation)
    {
        if (tileType == "red")
        {
            RedTile topTile = new RedTile();
            topTile.Init(ver1, ver2, ver3, true, RedTile.redTag);
            topTile.tileRotation = rotation;
            RedTile.redTag++;

            RedTile bottomTile = new RedTile();
            bottomTile.Init(ver2, ver1, ver4, false, RedTile.redTag);
            bottomTile.tileRotation = rotation;
            RedTile.redTag++;

            return(new RobTriangle[] { topTile, bottomTile });
        }

        else if (tileType == "blue")
        {
            BlueTile leftTile = new BlueTile();
            leftTile.Init(ver1, ver2, ver3, true, BlueTile.blueTag);
            leftTile.tileRotation = rotation;
            BlueTile.blueTag++;

            BlueTile rightTile = new BlueTile();
            rightTile.Init(ver2, ver1, ver4, false, BlueTile.blueTag);
            rightTile.tileRotation = rotation;
            BlueTile.blueTag++;

            return(new RobTriangle[] { rightTile, leftTile });
        }

        return(new RobTriangle[] { });
    }
Пример #2
0
        public void MonkeyTest(bool serialize,
                               OpenRiichi openRiichi,
                               HandCap handCap,
                               RedTile redTile,
                               喰い替え kuikae,
                               四家立直 allRiichi,
                               TripleRon tripleRon,
                               明槓槓ドラ 明槓槓ドラ)
        {
            IController controller = Game.Create(0, new RuleSetting()
            {
                openRiichi = openRiichi,
                handCap    = handCap,
                redTile    = redTile,
                喰い替え       = kuikae,
                四家立直       = allRiichi,
                tripleRon  = tripleRon,
                明槓槓ドラ      = 明槓槓ドラ
            });

            for (int i = 0; i < 1000; ++i)
            {
                if (serialize)
                {
                    var jsonString = controller.SerializeSession().ToJson();
                    controller = TSKT.Mahjongs.Serializables.Session.FromJson(jsonString);
                    var jsonString2 = controller.SerializeSession().ToJson();
                    Assert.AreEqual(jsonString, jsonString2);
                }

                var           commands = controller.ExecutableCommands;
                CommandResult result;
                if (commands.Length > 0)
                {
                    var command = commands[Random.Range(0, commands.Length)];
                    result = controller.ExecuteCommands(out _, command);
                }
                else
                {
                    result = controller.ExecuteCommands(out _);
                }
                if (result.nextController == null)
                {
                    break;
                }
                controller = result.nextController;
            }
        }