Example #1
0
 private void button9_Click(object sender, EventArgs e)
 {
     if (turn == 1)
     {
         gamePolje[2, 2] = 1;
         colorBoard();
         if (!gameOver(gamePolje))
         {
             algM temp = minmaks(gamePolje, 2, diff);
             gamePolje = DeepCopy(temp.poteza);
         }
         else
         {
             turn = 0;
         }
         colorBoard();
     }
 }
Example #2
0
        public algM minmaks(int[,] polje, int poteza, int d)
        {
            algM bestcase = new algM();

            if (gameOver(polje) || d == 0)
            {
                algM temp = new algM(hevOcena(polje), null);
                return(temp);
            }

            int ocena;

            if (poteza == 1) //MAX
            {
                ocena = -1000;
            }
            else
            {//MIN
                ocena = 1000;
            }
            algM retVal = new algM();

            //bestcase.poteza = DeepCopy(polje);
            //bestcase.poteza = polje;

            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    if (polje[i, j] == 0)
                    {
                        bestcase.poteza       = DeepCopy(polje); //gre do prve 0, to 0 nastavi na stevilko igralca
                        bestcase.poteza[i, j] = DeepCopy(poteza);

                        if (poteza == 1)
                        {
                            poteza = 2;
                        }
                        else
                        {
                            poteza = 1;
                        }

                        algM temp2 = minmaks(bestcase.poteza, poteza, d - 1);

                        if (poteza == 1)
                        {
                            poteza = 2;
                        }
                        else
                        {
                            poteza = 1;
                        }

                        if ((poteza == 1 && temp2.ocena > ocena) || (poteza == 2 && temp2.ocena < ocena))
                        {
                            ocena         = temp2.ocena;
                            retVal.ocena  = temp2.ocena;
                            retVal.poteza = DeepCopy(bestcase.poteza);
                        }
                    }
                }
            }

            //retVal.ocena = ocena;
            return(retVal);
        }