Build a command line chess game with object oriented programming.
This readme taken from here.
Today, let's build a command line chess game. Here's an example of the start of a game:
(Note: the ASCII art may be a little misaligned in the browser).
$ ruby chess.rb 8 ♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜ 7 ♟ ♟ ♟ ♟ ♟ ♟ ♟ ♟ 6 5 4 3 2 ♙ ♙ ♙ ♙ ♙ ♙ ♙ ♙ 1 ♖ ♘ ♗ ♕ ♔ ♗ ♘ ♖ a b c d e f g h white's turn. white, your move? d2 moves for white pawn d2: d3, d4 white, move d2 where? d4 Ok, white's pawn d2 to d4. If a capture is available, the program says so when it lists the move:
8 ♜ ♞ ♝ ♛ ♚ ♝ ♞ ♜ 7 ♟ ♟ ♟ ♟ ♟ ♟ ♟ 6 5 ♟ 4 ♙ ♙ 3 2 ♙ ♙ ♙ ♙ ♙ ♙ 1 ♖ ♘ ♗ ♕ ♔ ♗ ♘ ♖ a b c d e f g h black's turn. black, your move? d5 moves for black's pawn d5: e4 black, move d5 where? e4 Ok, black's pawn d5 captures white's pawn e4. And on and on until:
8 7 6 5 4 3 ♚ 2 ♜ 1 ♔ ♘ a b c d e f g h black's turn. black, your piece? e2 moves for black's rook e2: a2, b2, c2, d2, f2, g2, h2, e1, e3, e4, e5, e6, e7, e8 black, move e2 where? e1 Ok, black's pawn e2 to capture white's knight e1. Checkmate.