The Chess Variant Pages

This page is written by the game's inventor, sam tenka.

Bovine Chess

INTRO.   We present a notation for a large class of fairy pieces.  Several of these pieces, though compellingly simple, seem not to appear in the Piececlopedia.  We illustrate these pieces by defining a chess variant: Bovine Chess.  If you like forks more than pins, windmills more than pendula, and good open files more than bishop pairs, you might like Bovine Chess.

To learn our general piece notation, skip ahead to "PIECE NOTATION: SUBATOMS" below.



SETUP.    Bovine chess's setup looks exactly like chess's.  It's just that the pieces move and capture differently as described below.  In this setup, a2/h2 are undefended.


PIECES IN BOVINE CHESS.   Whereas orthodox chess features the pawn, knight, bishop, rook, queen, and royal mann, Bovine Chess features:
.^1-2     --- ♟ (bale): noncaptures forward like a wazir, captures like a ferz.  The soul of Bovine Chess.  Estimated values in mg and eg: ~2 points mg, ~1 point eg.
.^1-..v5  --- ♞ (manatee): noncaptures forward like a wazir, moves backward like a nightrider.  Thus, tends to be "submerged" in friendly camp.  Latent defender.  ~2 points mg, ~3 points eg.
-12..2    --- ♝ (bishon; portmanteau of Bison, Bishop): noncaptures like bishop; captures like a mann.   Thus, "short term colorbound".  Facile checkmater.  ~4 points mg, ~6 points eg.
--.++5    --- ♜ (aurook; portmanteau of Auroch, Rook): a nightrider except every intermediate square visited must contain a friendly or enemy piece.  Those intermediate pieces are all captured.   Tricky forker.  ~3 points mg, ~2 points eg.
..;--1    --- ♛ (hathor): a rook that may take multiple pieces adjacent along its line of attack.  Fearsome attacker.  ~9 points mg, ~7 points eg.
+12       --- ♚ (royal cow): a mann that captures friendly pieces.  May not move to empty squares or capture enemy pieces.  Less mobile and less susceptible to back rank mates than king. 

Note that the aurook and hathor may capture multiple pieces.  The aurook and royalcow may capture friendly pieces.  I hope that the increased defensive ability of bales (vs pawns), manatees (vs knights), and bishons (vs bishops) counters the hathor's extraordinary power.


EXAMPLE POSITIONS.   In the following (black to move), black is in check.  Indeed, the ♖b1 (white aurook) forks ♚e7 (black royal cow) and ♞a3 (black manatee).  Luckily, black has a defense; in fact, black's only move starts a mate in four:
-- ♛b1+, ♗b1, ♝d3, ♗d3, ♝c1+, ♔c3, ♝c1#
-- OR ♛b1+, ♗b1, ♝d3, ♔b1, ♝c2#
-- OR ♛b1+, ♔c3, ♝c4#

(FEN 8/4k3/b6b/3P4/8/n1P1B3/1K3PPP/BRN4q)


In the following (black to move), black has a mate in four:
-- ♞c2, ♙c2, ♜c2, ♗e3, ♜e3, ♙e5, ♚e6# (stalemate, which counts as a checkmate)
-- OR ♞c2, ♗e3, ♞c1+, ♔e3, ♜e4# (stalemate, which counts as a checkmate)
-- OR ♞c2, ♙e5, ♞c1#

(FEN 8/4k3/r7/2p5/1p2P3/1Pn5/4K3/6B1)


RULES.   We win when we checkmate the enemy's cow.  Unlike in ordinary chess, stalemates count as losses for the stalemated party.  Aurooks may not capture their own royal cow.  I prefer to play Bovine chess without castling, en passant, or draw by repetition.  Observe that none of our pieces may promote.  All and only those moves that involve at least one capture reset the 50 move counter.


PIECE NOTATION: SUBATOMS.   We motivate our notation by precisely describing a forward rook (i.e., a shogi lance), then generalizing.  How does the forward rook's set of possible moves depend on the source square and on the locations of friendly and enemy pieces?  Below is code that answers this question by randomly generating a move; it can generate all and only legal moves.  Each invocation of " ? " gives an independent random coin toss.  (Randomness isn't germane; we merely find it convenient to describe a piece by randomly sampling its moves so that we don't need to keep track of a list of different board states in the code.)

sample_fr_move (Board board, Square source)
    while (true) {
    Square dest = translate(source, {+1, 0}); // a forward rook (repeatedly) moves +1 vertically and 0 horizontally
    if (off_board(dest)) { break; }
    Color destcolor = get_color(board, dest);
    if (destcolor == FRIEND) { break; } // blocked by friend
    if (destcolor == ENEMY)  { make_move(board, source, dest); break; } // capture enemy
    if (destcolor == EMPTY ) { make_move(board, source, dest); if (?) { break; } } // may "capture" empty and stop-or-slide as wished
    source = dest;
make_move (Board board, Square source, Square dest)
{ // we assume source and dest differ
    set_piece(board, dest, get_piece(board, source));
    set_piece(board, source, empty_piece);

What if we wanted to sample a move from a forward-right crab (this piece leaps 2 units forward and 1 unit to the right)?  In addition to changing the step " {+1, 0} " into " {+2, +1} ", we'd replace the " if (?) { break; } " by " break; ".  Otherwise we'd get a forward-right crabrider.  More generally, it is interesting to consider within the body of each of the three conditionals any of the following three actions:

    break; // blocked
    make_move(board, source, dest); break; // simple capture
    make_move(board, source, dest); if (?) { break; } // capture and if desired continue

Let us notate the three-cubed possibilities by strings of the form "0,1,or 2 plus signs followed by 0,1,or 2 minus signs followed by followed by 0,1,or 2 periods".  The number of plus signs indicates whether friendly squares block, may be simply captured, or may be captured-and-continued-past.  The minus signs and periods do likewise for enemy squares and empty squares.  Thus, we might notate various forward-right pieces as follows:
-..{{+1,+1}}  --- forward-right bishop
-.{{+2,+1}}   --- forward-right crab
-{{+1,+1}}    --- forward-right pawn (without en-passant or promotion)
+.{{+1,+1}}   --- forward-right anti-king (more properly, forward-right anti-mann)

PIECE NOTATION: UNIONS.   To get full "atoms", we take unions over permissible directions.  For example, a queen is a union of eight sliders analogous to the forward-right bishop.  The sets of possible directions we find most interesting are those cut out by forward/backward constraint together with a squared-length-of-length.  We notate such sets by a forward/backward prefix (carat, equals, vee, or no prefix to represent strictly forward, purely horizontal, strictly backward, or no constraint) and a SSL suffix (a positive integer).  For example,
-.2   --- bishop
-.5   --- knight
-..5  --- nightrider
-^2   --- capture-only pawn (without en passant or promotion)

Each of the above represents an "atom".  We write AB for "either of A or B":
.^1-^2   --- pawn (without double-move, en-passant, or promotion)
-..12    --- queen
-.12     --- mann
-..2-.5  --- archbishop (princess)

PIECE NOTATION: SEQUENCING.   Another natural way to combine moves is to allow one-followed-by-another.  We write A;B for "A followed by B".  Thus,

.;.^1       --- pawn's double move
-..;..1..1  --- xiangqi cannon
-..;.2..2   --- neiride (marine bishop)
.-14        --- woody rook
.-1.;-.1    --- non-jumping woody rook

This 'user submitted' page is a collaboration between the posting user and the Chess Variant Pages. Registered contributors to the Chess Variant Pages have the ability to post their own works, subject to review and editing by the Chess Variant Pages Editorial Staff.

By sam tenka.

Last revised by sam tenka.

Web page created: 2022-01-26. Web page last updated: 2022-07-08