private static void testHu() { List <int> total = new List <int>(); for (int i = MaJiangDef.WAN1; i <= MaJiangDef.JIAN_BAI; i++) { total.Add(i); total.Add(i); total.Add(i); total.Add(i); } //Collections.shuffle(total); List <int> cards = new List <int>(); for (int i = 0; i < 14; i++) { int tmp = total[0]; total.RemoveAt(0); cards.Add(tmp); } cards.Sort(); Console.WriteLine("before " + MaJiangDef.cardsToString(cards)); List <int> gui = new List <int>(); int step = 0; int[] remain = new int[43] { 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1 }; List <int> bannedCards = new List <int>(); while (total.Count != 0) { if (HuUtil.isHuExtra(cards, gui, 0)) { cards.Sort(); Console.WriteLine("after " + MaJiangDef.cardsToString(cards)); Console.WriteLine("step " + step); break; } step++; int outRet = outAI(cards, gui, remain, bannedCards); cards.Remove((int)outRet); int tmp = total[0]; total.RemoveAt(0); cards.Add(tmp); } }
public static void testTing() { string init = "1万,1万,1筒,3筒,2筒,2条,3条,4条,东,东"; string gui = "1筒"; List <int> cards = MaJiangDef.stringToCards(init); Console.WriteLine(MaJiangDef.cardsToString(HuUtil.isTing(cards, MaJiangDef.stringToCard(gui)))); Console.WriteLine(MaJiangDef.cardsToString(HuUtil.isTingExtra(cards, MaJiangDef.stringToCards(gui)))); }
public static void testChi() { string init = "1万,2万,2万,1条,1条,1筒,2筒,4筒,4筒,5筒"; string guiStr = "1万"; List <int> cards = MaJiangDef.stringToCards(init); List <int> gui = MaJiangDef.stringToCards(guiStr); int[] remain = new int[43] { 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1 }; bool canChi = chiAI(cards, gui, MaJiangDef.stringToCard("3筒"), MaJiangDef.stringToCard("2筒"), MaJiangDef.stringToCard("4筒")); bool canDynamicChi = AICommonDynamic.chiAI(cards, gui, MaJiangDef.stringToCard("3筒"), MaJiangDef.stringToCard("2筒"), MaJiangDef.stringToCard("4筒"), remain); if (canChi != canDynamicChi) { Console.WriteLine("[testChi] test failed 1 ! "); } Console.WriteLine(string.Format("[testChi] canPeng = {0}", canChi)); List <int> chiCards = chiAI(cards, gui, MaJiangDef.stringToCard("3筒")); List <int> dynamicChiCards = AICommonDynamic.chiAI(cards, gui, MaJiangDef.stringToCard("3筒"), remain); if (chiCards.Count != dynamicChiCards.Count) { Console.WriteLine("[testChi] test failed 3 ! "); } for (int i = 0; i < chiCards.Count; ++i) { if (chiCards[i] != dynamicChiCards[i]) { Console.WriteLine("[testChi] test failed 2 ! "); } } Console.WriteLine(MaJiangDef.cardsToString(chiCards)); }