Пример #1
0
        public static void MinmaxTest(IPlayer white, IPlayer black)
        {
            int wynik = 0, wht = 0, draw = 0, blc = 0, total = 0;
            int size = 100;
            Move m;

            for (int i = 0; i < size; i++)
            {
                //                int now = DateTime.Now.Second;
                bool kto = true;
                Plansza p = new Plansza();
                p.rozpoczecie();
                wynik = 0;
                while ((wynik = p.GameEnded()) == 2)
                {
                    if (kto)
                    {
                        m = white.MakeMove(p, 1);
                        if (m == null)
                        {
                            wynik = 1;
                            break;
                        }
                    }
                    else
                    {
                        m = black.MakeMove(p, 2);
                        if (m == null)
                        {
                            wynik = -1;
                            break;
                        }
                    }
                    p.ExecuteMove(m);
                    kto = !kto;
                }
                switch (wynik)
                {
                    case -1:
                        wht++;
                        break;
                    case 0:
                        draw++;
                        break;
                    case 1:
                        blc++;
                        break;
                    default:
                        break;
                }
                //              Console.WriteLine(wynik + "   \t" + (DateTime.Now.Second-now) + " sec.");
                total++;
            }
            Console.WriteLine(white.MyName() + ":\t" + wht);// + "," + Math.Round(((double)wht/(double)total * 100.0), 2));
            Console.WriteLine("remis:\t" + draw);
            Console.WriteLine(black.MyName() + ":\t" + blc);// + "," + Math.Round(((double)blc / (double)total * 100.0), 2));
            Console.WriteLine();
        }
Пример #2
0
        public static void TestFunction(int size, IPlayer white, IPlayer black)
        {
            StreamWriter sw = new StreamWriter("final_test.csv", true, System.Text.Encoding.UTF8);
            int wynik = 0, wht = 0, draw = 0, blc = 0, total = 0;
            Move m;

            for (int i = 0; i < size; i++)
            {
            //                int now = DateTime.Now.Second;
                bool kto = true;
                Plansza p = new Plansza();
                p.rozpoczecie();
                wynik = 0;
                while ((wynik = p.GameEnded()) == 2)
                {
                    if (kto)
                    {
                        m = white.MakeMove(p, 1);
                        if (m == null)
                        {
                            wynik = 1;
                            break;
                        }
                    }
                    else
                    {
                        m = black.MakeMove(p, 2);
                        if (m == null)
                        {
                            wynik = -1;
                            break;
                        }
                    }
                    p.ExecuteMove(m);
                    kto = !kto;
                }
                switch (wynik)
                {
                    case -1:
                        wht++;
                        break;
                    case 0:
                        draw++;
                        break;
                    case 1:
                        blc++;
                        break;
                    default:
                        break;
                }
              //              Console.WriteLine(wynik + "   \t" + (DateTime.Now.Second-now) + " sec.");
                total++;
            }
            sw.WriteLine(white.MyName() + "," + black.MyName() + "," + (double)wht / (double)total * 100.0 + "," + (double)draw / (double)total * 100.0 + "," + (double)blc / (double)total * 100.0 + "," + total);
            sw.Close();
        }