private void MakeCopyOfGameboard() { TempGameBoard.Clear(); var pawns = GameBoard.Where(x => x is Pawn).ToList(); pawns.ForEach(x => TempGameBoard.Add(new Pawn(x.PieceColor, new Point(x.CurrentPosition._PosX, x.CurrentPosition._PosY), x.hasBeenMoved))); var bishops = GameBoard.Where(x => x is Bishop).ToList(); bishops.ForEach(x => TempGameBoard.Add(new Bishop(x.PieceColor, new Point(x.CurrentPosition._PosX, x.CurrentPosition._PosY)))); var horses = GameBoard.Where(x => x is Horse).ToList(); horses.ForEach(x => TempGameBoard.Add(new Horse(x.PieceColor, new Point(x.CurrentPosition._PosX, x.CurrentPosition._PosY)))); var rooks = GameBoard.Where(x => x is Rook).ToList(); rooks.ForEach(x => TempGameBoard.Add(new Rook(x.PieceColor, new Point(x.CurrentPosition._PosX, x.CurrentPosition._PosY), x.hasBeenMoved))); var queens = GameBoard.Where(x => x is Queen).ToList(); queens.ForEach(x => TempGameBoard.Add(new Queen(x.PieceColor, new Point(x.CurrentPosition._PosX, x.CurrentPosition._PosY)))); var kings = GameBoard.Where(x => x is King).ToList(); kings.ForEach(x => TempGameBoard.Add(new King(x.PieceColor, new Point(x.CurrentPosition._PosX, x.CurrentPosition._PosY)))); }
private void RemovePotentialTakenEnemy(Pieces piece) { Pieces tempPiece = null; foreach (var EnemyPiece in TempGameBoard) { if (CompareMyPositionWithEnemyPosition(piece, EnemyPiece)) { tempPiece = EnemyPiece; break; } } TempGameBoard.Remove(tempPiece); tempPiece = null; foreach (var EnemyPiece in Enemies) { if (CompareMyPositionWithEnemyPosition(piece, EnemyPiece)) { tempPiece = EnemyPiece; break; } } Enemies.Remove(tempPiece); }
// Check if current move is protected by allied piece and returns bool depending on true or false private bool WillIBeProtected(Move move, Pieces piece) { TempGameBoard.Remove(GetPieceFromTempBoard(piece)); if (AmIProtected(move, piece.PieceColor) > 0) { RestoreTempGameBoard(); return(true); } else { RestoreTempGameBoard(); return(false); } }
// separerar ennemies från allies, lägger dom i egna listor(för enkelhets skull. gör också så att man inte behöver ha fula checkar över allt) #region Seperate Enemies and Allies private List <Pieces> GetEnemies(Color color) { return(TempGameBoard.Where(P => P.PieceColor != color).ToList()); }