private void btnRook_Click(object sender, System.EventArgs e) { pieceSelected = PieceType.Tower; DialogResult = DialogResult.OK; Close(); }
private void btnBishop_Click(object sender, System.EventArgs e) { pieceSelected = PieceType.Bishop; DialogResult = DialogResult.OK; Close(); }
public PieceBase(PieceType pieceType) { this.pieceType = pieceType; }
public Location GetPiece(PieceColor color, PieceType type) => AllBoard().Single(loc => GetPiece(loc).Is(color) && GetPiece(loc).PieceType == type);
public Piece(PieceType type, Colour owner) : this() { Type = type; Owner = owner; HasEverMoved = false; }
public static bool Is(Piece piece, PieceColor color, PieceType pieceType) => Is(piece, color) && piece.PieceType == pieceType;
public Move(MoveFlags flags, MoveDirections direction, Square startPosition, Square movePosition, Square capturePosition, PieceType conversionType = PieceType.PieceType_NB) { Flags = flags; Direction = direction; StartPosition = startPosition; MovePosition = movePosition; CapturePosition = capturePosition; ConversionType = conversionType; }
public static bool Is(this Piece piece, PieceColor color, PieceType pieceType) => piece.Is(color) && piece.PieceType == pieceType;
/// <summary> /// Crown the pawn (change its piece type to the selected one) /// </summary> public void Crown(Piece pawn, Player player, PieceType selectedPiece) { cells[pawn.position.row, pawn.position.column].type = selectedPiece; }
public SinglePiece(PieceType type, Color color, int id) { Piece = type; Color = color; ID = id; }
public static Move MakeMove(Square org, Square dst, PieceType pt) { return((Move)((ushort)MoveType.PROMOTE + ((((pt - PieceType.NIHT) << 6) + org) << 6) + dst)); }
/// <summary> /// Moves the activePiece to the location inputted, detects if a player is under check or checkmate, and changes the turn to the other player. /// </summary> private void MovePieceAndChangeTurn(Point location, bool kill) { Pair endPosition = GetCellAtPoint(location); Pair piecePosition = GetCellAtPoint(activePiece.Location); if (activePiece != null) { Piece piece = boardInterface.PieceAtLocation(piecePosition.row, piecePosition.column); if (boardInterface.IsValidMove(piece, endPosition) && piece.color == turn.color) { if (!boardInterface.MoveMakesYouChecked(piece, endPosition, turn)) { moveMakesYouChecked = false; // Move piece in display location.X = GetPictureLocation(new Pair(endPosition.row, endPosition.column)).X; location.Y = GetPictureLocation(new Pair(endPosition.row, endPosition.column)).Y; activePiece.Location = location; // Check for castling if (activePiece == whiteKing && Math.Abs(endPosition.column - piecePosition.column) == 2) { if (endPosition.column > piecePosition.column) { whiteTower2.Location = GetCellLocation(new Pair(7, 4)); } else { whiteTower.Location = GetCellLocation(new Pair(7, 2)); } } if (activePiece == blackKing && Math.Abs(endPosition.column - piecePosition.column) == 2) { if (endPosition.column > piecePosition.column) { blackTower2.Location = GetCellLocation(new Pair(0, 4)); } else { blackTower.Location = GetCellLocation(new Pair(0, 2)); } } // Kill if needed if (kill) { killedPiece.Visible = false; killedPiece.Enabled = false; } // Move piece in logic boardInterface.Move(piece, endPosition, turn); // Crown if needed if (piece.type == PieceType.Pawn && (endPosition.row == 0 || endPosition.row == 7)) { PieceType pieceSelected = GetPieceForCrowning(); boardInterface.Crown(piece, turn, pieceSelected); ChangeActivePieceImage(pieceSelected); } // Change turn if (turn.color == Color.White) { turn = black; } else { turn = white; } // Check detection if (boardInterface.UnderCheck(turn)) { Check(); } else { check = false; } // Checkmate detection if (boardInterface.CheckMated(white) || boardInterface.CheckMated(black)) { CheckMate(); } } else { moveMakesYouChecked = true; } } else { activePiece = null; } Invalidate(); } }
public static Boolean Is(Piece piece, PieceColor color, PieceType pieceType) { return(Is(piece, color) && piece.PieceType == pieceType); }
private void btnKnight_Click(object sender, System.EventArgs e) { pieceSelected = PieceType.Horse; DialogResult = DialogResult.OK; Close(); }
private Piece(Bitmap img, ChessFlag flag, PieceType type) { Img = img; Flag = flag; Type = type; }
public Empty() : base(null, Vector2.Zero, Color.White, Vector2.Zero, PieceColor.None) { Type = PieceType.None; }
public static void AddPiece(this Game game, Square square, PieceType type) { Piece piece = null; switch (type) { case PieceType.NoPiece: break; case PieceType.WhiteKing: piece = new King(Color.White); break; case PieceType.WhiteQueen: piece = new Queen(Color.White); break; case PieceType.WhiteRook: piece = new Rook(Color.White); break; case PieceType.WhiteBishop: piece = new Bishop(Color.White); break; case PieceType.WhiteNight: piece = new Knight(Color.White); break; case PieceType.WhitePawn: piece = new Pawn(Color.White); break; case PieceType.BlackKing: piece = new King(Color.Black); break; case PieceType.BlackQueen: piece = new Queen(Color.Black); break; case PieceType.BlackRook: piece = new Rook(Color.Black); break; case PieceType.BlackBishop: piece = new Bishop(Color.Black); break; case PieceType.BlackKnight: piece = new Knight(Color.Black); break; case PieceType.BlackPawn: piece = new Pawn(Color.Black); break; default: throw new NotImplementedException(); } game.AddPiece(square.File, square.Rank, piece); }
public Piece(PieceType pieceType, PieceColor color) { PieceType = pieceType; Color = color; }
public static Piece MakePiece(Color c, PieceType pt) { return((c << 3) + pt); }