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); } } } }
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(); } }
} //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); } } } } } } }