Example #1
0
 /// <summary>
 /// Umístìní hracího kamene na hrací plochu.
 /// </summary>
 /// <param name="souradnice">Souøadnice, kam bude kámen umístìn</param>
 /// <param name="barva">Barva kamene, který je tøeba umístit</param>
 /// <returns>Vrací true, pokud bylo pole neobsazené a kámen byl umístìn, jinak false</returns>
 public bool UmistiKamen(SouradnicePole souradnice, BarvaKamene barva)
 {
     if ((hraciPole[souradnice.Radek,souradnice.Sloupec]!=BarvaKamene.Zadny) || JeVitez)
         return false;
     else
     {
         hraciPole[souradnice.Radek,souradnice.Sloupec]=barva;
         ZkusNajitViteznouRaduPoli();
         return true;
     }
 }
 private void Start1_Click(object sender, System.EventArgs e)
 {
     barvaEnginu=BarvaKamene.Cerny;
     barvaCloveka=BarvaKamene.Bily;
     StartInit();
     ProvedTahEnginu();
 }
 private void Start2_Click(object sender, System.EventArgs e)
 {
     barvaEnginu=BarvaKamene.Bily;
     barvaCloveka=BarvaKamene.Cerny;
     StartInit();
     panelPlocha.Aktivni=true;
     Zprava.Text="Jsi na tahu.";
 }
        //---------------------------------------------------------------------------
        public SouradnicePole NajdiNejlepsiTah(BarvaKamene[,] hraciPole, BarvaKamene barvaNaTahu, TimeSpan zbyvajiciCasNaPartii)
        {
            int p,x,y;

            //nastav hloubku p�em��len� podle zb�vaj�c�ho �asu
            depth= 4+(int)zbyvajiciCasNaPartii.TotalSeconds/60;
            //p�i prvn�m tahu zjisti, jestli jsem b�l� nebo �ern�
            if(moves==0) {
                player=0;
                if(barvaNaTahu==BarvaKamene.Bily) player=1;
            }
            //najdi v hrac�m poli posledn� tah soupe�e
            p=6*height2+1;
            for(x=0; x<width; x++){
                for(y=0; y<height; y++){
                    switch(hraciPole[y,x]){
                    case BarvaKamene.Bily:
                        if(board[p].z!=1){
                            doMove(p);
                            goto mujTah;
                        }
                        break;
                    case BarvaKamene.Cerny:
                        if(board[p].z!=2){
                            doMove(p);
                            goto mujTah;
                        }
                        break;
                    }
                    p++;
                }
                p+=2;
            }
            //tah soupe�e nenalezen => j� za��n�m
            player=0;
            if(barvaNaTahu==BarvaKamene.Cerny) player=1;
            //prove� sv�j tah
            mujTah:
            computer1();
            return new SouradnicePole(board[lastMove].y, board[lastMove].x);
        }