Exemplo n.º 1
0
        public void counterMinMaxNew4()
        {
            ITavola     tavola  = new Tavola();
            AbsAIPlayer p1      = new MinMax(4);
            IPlayer     p2      = new HumanPlayer();
            IGioco      gioco   = new Gioco(tavola);
            Bant        bantumi = new Bant(gioco, p1, p2);
            int         i       = p1.Elaborazione(gioco);

            Assert.AreEqual(99569593, p1.OperationCount);
        }
Exemplo n.º 2
0
        public void counterMinMaxAlfaBeta3HVal()
        {
            ITavola     tavola  = new Tavola();
            AbsAIPlayer p1      = new MinMaxAlphaBeta(3, 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(50387, p1.OperationCount);
        }
Exemplo n.º 3
0
        public void counterMinMaxAlfaBeta5()
        {
            ITavola     tavola  = new Tavola();
            AbsAIPlayer p1      = new MinMaxAlphaBeta(5);
            IPlayer     p2      = new HumanPlayer();
            IGioco      gioco   = new Gioco(tavola);
            Bant        bantumi = new Bant(gioco, p1, p2);
            int         i       = p1.Elaborazione(gioco);

            Assert.AreEqual(25298451, p1.OperationCount);
        }
Exemplo n.º 4
0
        public void counterMinMaxAlfaBeta5HAsc()
        {
            ITavola     tavola  = new Tavola();
            AbsAIPlayer p1      = new MinMaxAlphaBeta(5, 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(81995855, p1.OperationCount);
        }
Exemplo n.º 5
0
        public void Muovi_Buca3_Result_4SemiBuca45E1InBuca6TurnoSuccessivoPC()
        {
            ITavola tavola = new Tavola();
            IGioco  gioco  = new Gioco(tavola);

            gioco.Muovi(3);
            Assert.AreEqual(0, tavola.Buche[3].Semi);
            Assert.AreEqual(4, tavola.Buche[4].Semi);
            Assert.AreEqual(4, tavola.Buche[5].Semi);
            Assert.AreEqual(1, tavola.Buche[6].Semi);
            Assert.AreEqual(Lato.A, gioco.ProssimoTurno);
        }
Exemplo n.º 6
0
        public void Muovi_Buca0_Result_4SemiSemiBuca123TurnoSuccessivoNicola()
        {
            ITavola tavola = new Tavola();
            IGioco  gioco  = new Gioco(tavola);

            gioco.Muovi(0);
            Assert.AreEqual(0, tavola.Buche[0].Semi);
            Assert.AreEqual(4, tavola.Buche[1].Semi);
            Assert.AreEqual(4, tavola.Buche[2].Semi);
            Assert.AreEqual(4, tavola.Buche[3].Semi);
            Assert.AreEqual(Lato.B, gioco.ProssimoTurno);
        }
Exemplo n.º 7
0
        public void Muovi_Buca3_12_Result_4SemiBuca45E1InBuca6TurnoSuccessivoPC()
        {
            ITavola tavola = new Tavola();
            IGioco  gioco  = new Gioco(tavola);

            gioco.Muovi(4);
            gioco.Muovi(12);

            Assert.AreEqual(4, tavola.Buche[0].Semi);
            Assert.AreEqual(4, tavola.Buche[1].Semi);
            Assert.AreEqual(3, tavola.Buche[2].Semi);
            Assert.AreEqual(3, tavola.Buche[3].Semi);
            Assert.AreEqual(0, tavola.Buche[4].Semi);
            Assert.AreEqual(4, tavola.Buche[5].Semi);
            Assert.AreEqual(1, tavola.Buche[6].Semi);
            Assert.AreEqual(4, tavola.Buche[7].Semi);
            Assert.AreEqual(3, tavola.Buche[8].Semi);
            Assert.AreEqual(3, tavola.Buche[9].Semi);
            Assert.AreEqual(3, tavola.Buche[10].Semi);
            Assert.AreEqual(3, tavola.Buche[11].Semi);
            Assert.AreEqual(0, tavola.Buche[12].Semi);
            Assert.AreEqual(1, tavola.Buche[13].Semi);
            Assert.AreEqual(Lato.A, gioco.ProssimoTurno);
        }
Exemplo n.º 8
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++;
                }
            }

            //}
        }