private void onFieldClick(int x, int y) { if (game is null || game.GameState == GameStates.blackWin || game.GameState == GameStates.whiteWin) { return; } if (selectedPiece is null) { var pm = game.Board.GetPiece(x, y); if (pm.Owner == game.PlayerTurn) { selectedPiece = pm; } } else { if (selectedPiece.canMoveTo(x, y)) { selectedPiece.moveTo(x, y); if (game.GameState == GameStates.blackWin) { var king = game.Board.getWhiteKing(); board[king.PieceXPosition, king.PieceYPosition].BackColor = Color.Red; } else if (game.GameState == GameStates.whiteWin) { var king = game.Board.getBlackKing(); board[king.PieceXPosition, king.PieceYPosition].BackColor = Color.Red; } } selectedPiece = null; } updateBoard(); }
public void moveTo_corrcet() { Game game = new Game(); IPieceManager piece = game.Board.GetPiece(5, 1); piece.moveTo(5, 2); Assert.IsTrue(game.Board.GetPiece(5, 1) is EmptyPieceManager); Assert.AreEqual(piece.Owner, game.Board.GetPiece(5, 2).Owner); Assert.AreEqual(piece.Type, game.Board.GetPiece(5, 2).Type); }