By the way, I found another potentially useful notation that's used to describe a chess game. It's called "Forsyth–Edwards Notation" or "FEN", and it's described on Wikipedia at this link:
https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_NotationHere's most of that article:
Wikipedia wrote:Forsyth–Edwards NotationForsyth–Edwards Notation (FEN) is a standard notation for describing a particular board position of a chess game. The purpose of FEN is to provide all the necessary information to restart a game from a particular position.
FEN is based on a system developed by Scottish newspaper journalist David Forsyth. Forsyth's system became popular in the 19th century; Steven J. Edwards extended it to support use by computers. FEN is defined in the "Portable Game Notation Specification and Implementation Guide". In the Portable Game Notation for chess games, FEN is used to define initial positions other than the standard one. FEN does not provide sufficient information to decide whether a draw by threefold repetition may be legally claimed or a draw offer may be accepted; for that, a different format such as Extended Position Description is needed.
DefinitionA FEN "record" defines a particular game position, all in one text line and using only the ASCII character set. A text file with only FEN data records should have the file extension ".fen".
A FEN record contains six fields. The separator between fields is a space. The fields are:
- Piece placement (from White's perspective). Each rank is described, starting with rank 8 and ending with rank 1; within each rank, the contents of each square are described from file "a" through file "h". Following the Standard Algebraic Notation (SAN), each piece is identified by a single letter taken from the standard English names (pawn = "P", knight = "N", bishop = "B", rook = "R", queen = "Q" and king = "K"). White pieces are designated using upper-case letters ("PNBRQK") while black pieces use lowercase ("pnbrqk"). Empty squares are noted using digits 1 through 8 (the number of empty squares), and "/" separates ranks.
- Active color. "w" means White moves next, "b" means Black moves next.
- Castling availability. If neither side can castle, this is "-". Otherwise, this has one or more letters: "K" (White can castle kingside), "Q" (White can castle queenside), "k" (Black can castle kingside), and/or "q" (Black can castle queenside). A move that temporarily prevents castling does not negate this notation.
- En passant target square in algebraic notation. If there's no en passant target square, this is "-". If a pawn has just made a two-square move, this is the position "behind" the pawn. This is recorded regardless of whether there is a pawn in position to make an en passant capture.[6]
- Halfmove clock: The number of halfmoves since the last capture or pawn advance, used for the fifty-move rule.[7]
- Fullmove number: The number of the full move. It starts at 1, and is incremented after Black's move.
Examples:The following example is from the FEN specification:[8]
Here's the FEN for the starting position:
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
And after the move 1.e4:
rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq e3 0 1
And then after 1...c5:
rnbqkbnr/pp1ppppp/8/2p5/4P3/8/PPPP1PPP/RNBQKBNR w KQkq c6 0 2
And then after 2.Nf3:
rnbqkbnr/pp1ppppp/8/2p5/4P3/5N2/PPPP1PPP/RNBQKB1R b KQkq - 1 2
The FEN specification appears to be used for computer transmission and/or storage of a series of game positions rather than for human exchange. But I think it will be pretty easy to use for posting here on the forum with a few simple adaptations.
Let's start with the actual pieces. To summarize from above:
Piece | White | Black |
Pawn | P | p |
Rook | R | r |
Knight | N | n |
Bishop | B | b |
Queen | Q | q |
King | K | k |
So that would let us show all of the pieces fairly easily. But the FEN notation uses numbers to specify empty squares, and that's not very easy to visualize. So I am thinking that we could use something else like spaces, dots, dashes, or something similar. The problem with spaces would be that they could be hard to count visually, so it might be better to use something that is visually visible on the screen.
For example, using the FEN designations for pieces along with a dash (-) for empty squares, the current board position (viewed from the black side) would be:
R - B K Q - N R
P P P - - P P P
- - - B - - - -
- - - q P - - -
- - - - - - - -
- - - - - - - -
p p p - p p p p
r n b k - b n r
Here's what that looks like in our chessboard display code:
♖ | | ♗ | ♔ | ♕ | | ♘ | ♖ |
♙ | ♙ | ♙ | | | ♙ | ♙ | ♙ |
| | | ♗ | | | | |
| | | ♛ | ♙ | | | |
| | | | | | | |
| | | | | | | |
♟ | ♟ | ♟ | | ♟ | ♟ | ♟ | ♟ |
♜ | ♞ | ♝ | ♚ | | ♝ | ♞ | ♜ |
That notation might be helpful at some point, so I just wanted to mention it.