コード例 #1
0
 public void rysowaniePlanszy() //metoda odrysowująca szachownice
 {
     gameBoard = model.dostanPlansze();
     for (char x = 'A'; x <= 'H'; x++)
     {
         for (int y = 1; y <= 8; y++)
         {
             view.RysujPole((Convert.ToInt32(x) - 65), (y - 1), gameBoard[x, y].jakiKolorMaPole);
             if (gameBoard.czyJestPionek(gameBoard[x, y]))
             {
                 view.RysujPionek((Convert.ToInt32(x) - 65), (y - 1), gameBoard.zdobaczPionkaZPola(gameBoard[x, y]).kolorPionka);
             }
             else if (gameBoard.czyJestDamka(gameBoard[x, y]))
             {
                 view.rysujDamke((Convert.ToInt32(x) - 65), (y - 1), gameBoard.zdobaczPionkaZPola(gameBoard[x, y]).kolorPionka);
             }
         }
     }
 }
コード例 #2
0
 public void HandleMouseInteraction(object sender, WarcabyView.MouseInteractionArgs arg) //metoda obsługująca zdarzenia kliknięcia myszy
 {
     if (model.czyMoznaZaznaczyc(gameBoard[arg.posX, arg.posY]))
     {
         view.RysujPole((Convert.ToInt32(arg.posX) - 65), (arg.posY - 1), Color.GreenYellow);
         if (gameBoard.czyJestPionek(gameBoard[arg.posX, arg.posY]))
         {
             view.RysujPionek((Convert.ToInt32(arg.posX) - 65), (arg.posY - 1), gameBoard.zdobaczPionkaZPola(gameBoard[arg.posX, arg.posY]).kolorPionka);
         }
         else if (gameBoard.czyJestDamka(gameBoard[arg.posX, arg.posY]))
         {
             view.rysujDamke((Convert.ToInt32(arg.posX) - 65), (arg.posY - 1), gameBoard.zdobaczPionkaZPola(gameBoard[arg.posX, arg.posY]).kolorPionka);
         }
     }
     else if (model.czyMogeOdznaczyc(gameBoard[arg.posX, arg.posY]))
     {
         view.RysujPole((Convert.ToInt32(arg.posX) - 65), (arg.posY - 1), gameBoard[arg.posX, arg.posY].jakiKolorMaPole);
         if (gameBoard.czyJestPionek(gameBoard[arg.posX, arg.posY]))
         {
             view.RysujPionek((Convert.ToInt32(arg.posX) - 65), (arg.posY - 1), gameBoard.zdobaczPionkaZPola(gameBoard[arg.posX, arg.posY]).kolorPionka);
         }
         else if (gameBoard.czyJestDamka(gameBoard[arg.posX, arg.posY]))
         {
             view.rysujDamke((Convert.ToInt32(arg.posX) - 65), (arg.posY - 1), gameBoard.zdobaczPionkaZPola(gameBoard[arg.posX, arg.posY]).kolorPionka);
         }
     }
     else if (model.czyMogeWykonacRuch(gameBoard[arg.posX, arg.posY]))
     {
         this.rysowaniePlanszy();
         model.zmianaKolejki();
         if (model.czyKoniec())
         {
             KoniecGry();
         }
         else
         {
             Thread.Sleep((int)TimeSpan.FromSeconds(2).TotalMilliseconds);
             model.ruchAI();
             model.zmianaKolejki();
             this.rysowaniePlanszy();
         }
         KoniecGry();
     }
 }
コード例 #3
0
        }                                               //właściwość która zwraca nam informacje czy dany obiekt reprezentuje człowieka czy komputer
        public void MozliweBicia(Szachownica gameBoard) // Duża metoda która ma za zadanie zebranie WSZYSTKICH możliwych ruchów oraz bić dla danego gracza oraz zostawienie tylko tych które mają największą "siłę" bić.
        {
            int max = 0;

            for (char i = 'A'; i <= 'H'; i++)
            {
                for (int j = 1; j <= 8; j++)
                {
                    if (gameBoard.czyJestPionekTegoPana(this, gameBoard[i, j]))
                    {
                        if (gameBoard.zdobaczPionkaZPola(gameBoard[i, j]).czyDamka)
                        {
                            gameBoard.bicieDamka(this, gameBoard[i, j], gameBoard[i, j], new List <Pionek>(), ref biciaMaxymalne);
                        }
                        else
                        {
                            gameBoard.sprawdzanieBiciaPionek(this, gameBoard[i, j], gameBoard[i, j], new List <Pionek>(), ref biciaMaxymalne);
                        }
                        for (int z = 0; z <= 2; z++)
                        {
                            foreach (var a in biciaMaxymalne.ToList())
                            {
                                if (a.silaBicia > max)
                                {
                                    max = a.silaBicia;
                                }
                                else if (a.silaBicia < max)
                                {
                                    biciaMaxymalne.Remove(a);
                                }
                            }
                        }
                    }
                }
            }
            if (max == 0)
            {
                for (char i = 'A'; i <= 'H'; i++)
                {
                    for (int j = 1; j <= 8; j++)
                    {
                        if (gameBoard.czyJestPionekTegoPana(this, gameBoard[i, j]))
                        {
                            if (!gameBoard.zdobaczPionkaZPola(gameBoard[i, j]).czyDamka)
                            {
                                foreach (var a in gameBoard.sprawdzanieRuchow(this, gameBoard[i, j]))
                                {
                                    biciaMaxymalne.Add(a);
                                }
                            }
                            else
                            {
                                foreach (var a in gameBoard.ruchDamka(this, gameBoard[i, j]))
                                {
                                    biciaMaxymalne.Add(a);
                                }
                            }
                        }
                    }
                }
            }
        }