Exemple #1
0
        public void counterMinMaxAlfaBeta5HVal()
        {
            ITavola     tavola  = new Tavola();
            AbsAIPlayer p1      = new MinMaxAlphaBeta(5, new HeuristicFunctionValue(Lato.A));
            IPlayer     p2      = new HumanPlayer();
            IGioco      gioco   = new Gioco(tavola);
            Bant        bantumi = new Bant(gioco, p1, p2);
            int         i       = p1.Elaborazione(gioco);

            Assert.AreEqual(23123673, p1.OperationCount);
        }
Exemple #2
0
        public void counterMinMaxAlfaBeta4HAsc()
        {
            ITavola     tavola  = new Tavola();
            AbsAIPlayer p1      = new MinMaxAlphaBeta(4, new HeuristicFunctionAscendent());
            IPlayer     p2      = new HumanPlayer();
            IGioco      gioco   = new Gioco(tavola);
            Bant        bantumi = new Bant(gioco, p1, p2);
            int         i       = p1.Elaborazione(gioco);

            Assert.AreEqual(2676841, p1.OperationCount);
        }
Exemple #3
0
        public void counterMinMaxNew1()
        {
            ITavola     tavola  = new Tavola();
            AbsAIPlayer p1      = new MinMax(1);
            IPlayer     p2      = new HumanPlayer();
            IGioco      gioco   = new Gioco(tavola);
            Bant        bantumi = new Bant(gioco, p1, p2);
            int         i       = p1.Elaborazione(gioco);

            Assert.AreEqual(129, p1.OperationCount);
        }
Exemple #4
0
        static void Main(string[] args)
        {
            int vittorieA = 0;
            int vittorieB = 0;
            int parita    = 0;
            //while (true)
            //{
            ITavola tavola = new Tavola();
            IPlayer p1     = new MinMaxAlphaBeta(4, new HeuristicFunctionValue(Lato.A));
            IPlayer p2     = new MinMaxAlphaBetaWithOpen(4, new HeuristicFunctionValue(Lato.B));
            //IPlayer p2 = new MinMaxPlayer(Convert.ToInt32(args[0]));
            IGioco gioco   = new Gioco(tavola);
            Bant   bantumi = new Bant(gioco, p1, p2);

            //gioco.Start();
            Render(gioco.Tavola);
            Console.WriteLine("Muove Player" + gioco.ProssimoTurno);
            Thread.Sleep(sleepTime);
            while (gioco.Vincitore == null && !gioco.Parita)
            {
                IPlayer player = bantumi.GetPlayer(gioco.ProssimoTurno);
                if (player is HumanPlayer)
                {
                    if (gioco.ProssimoTurno == Lato.A)
                    {
                        Console.WriteLine("Player" + Lato.A + " scegli una buca fra 0 e 5");
                    }
                    else
                    {
                        Console.WriteLine("Player" + Lato.B + " scegli una buca fra 7 e 12");
                    }
                    gioco.Muovi(ReadValue(gioco));
                }
                else
                {
                    if (player is IAIPlayer)
                    {
                        IAIPlayer aiPlayer = player as IAIPlayer;
                        int       i        = aiPlayer.Elaborazione(gioco);

                        Console.WriteLine("MUOVE" + i);

                        gioco.Muovi(i);
                    }
                }

                Render(gioco.Tavola);
                Thread.Sleep(sleepTime);
            }
            if (gioco.Parita)
            {
                Console.WriteLine("Parità");

                parita++;
            }
            else
            {
                if (gioco.Vincitore == Lato.A.ToString())
                {
                    Console.WriteLine("Ha vinto Player" + gioco.Vincitore);
                    Console.ReadLine();
                    //vittorieA++;
                }
                if (gioco.Vincitore == Lato.B.ToString())
                {
                    Console.WriteLine("Ha vinto Player" + gioco.Vincitore);
                    Console.ReadLine();
                    //vittorieB++;
                }
            }

            //}
        }