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[] { }); }
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; } }