If there was one idea that got me into programming it was Blind Chess. It
simply could not be played without a computer. It's chess but each piece has
a limited visibility based on proximity and capability. For example a rook
can see adjacent squares and along a straight line until the view is
blocked. I tested the concept for Blind Chess with my now wife using two
chess boards in real life well before I ever put this idea online. The first
version of Blind Chess was written in MatLab using a GUI. And since then I
rewrote it in html, js, and css, then archived the code, and eventually
found it, dusted it off, and put it on this website.
You can select the grid size and play versus a dumb cpu. The original
version included a feature to select pieces based on a budget and start the
game with custom piece layout. That way you could in theory have a game of
many many pawns versus a few queens where both sides are unaware of what
cannot be seen by their pieces. This version starts with the standard chess
setup on both sides and checkmate is not implemented. Still this version is
a sufficient prototype to communicate the concept. Enjoy.
Visibility Rules:
Each piece can see a default set of squares even when fully surrounded.
Additionally, each piece has a visibility set that is roughly equivalent to
the set of legal chess moves.
King:
Default Visibility: Three squares in every
direction.
Additional Visibility: Along horizontal,
vertical, and diagonal lines until blocked by another piece.
Queen:
Default Visibility: Two squares in every
direction.
Additional Visibility: Along horizontal,
vertical, and diagonal lines until blocked by another piece.
Rook:
Default Visibility: One square in every
direction and two squares along every horizontal and vertical line.
Additional Visibility: Along horizontal and
vertical lines until blocked by another piece.
Bishop:
Default Visibility: One square in every
direction and two squares along every diagonal line.
Additional Visibility: Along diagonal lines
until blocked by another piece.
Knight:
Default Visibility: All squares within the
knight move pattern extended by one in each direction. In other words all
squares within three vertical and two horizontal or two vertical and three
horizontal.
Additional Visibility: None.
Pawn:
Default Visibility: One square in every
direction and two squares along every horizontal and vertical line.
Additional Visibility: None.