public void ruchAi(ref Szachownica gameBoard) //Metoda odpowiadająca za ruch komputera { Random rnd = new Random(); int r = rnd.Next(biciaMaxymalne.Count); gameBoard.wykonajRuch(biciaMaxymalne[r]); }
public void wykonajRuch(Pole skad, Pole dokad, ref Szachownica gameBoard) //Metoda przekazujący odpowiedni ruch z listy do metody w obiekcie Szachownica { foreach (var a in biciaMaxymalne) { if (a.skad == skad && a.dokad == dokad) { gameBoard.wykonajRuch(a); } } }
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); } } } }
} //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); } } } } } } }