BF Joust is a game played between two computer programs in a shared memory array.
In December 2008 Kerim Aydin introduced BF Joust, making a king of the hill tournament available the following month. BF Joust was revised by ais523 who published a Perl interpreter in May 2009. The current #esoteric EgoBot hill opened in May 2009.
BF Joust is played in a byte array with a length of 10-30 cells. A flag at each end is set to 128. The remainder of the array is initialise to 0. The aim of the game is to set the opponent's flag to 0.
Each program has a pointer to a cell in the array, initially pointing to the program's own flag. The language of BF Joust consists of 7 simple instructions to manipulate the pointer or the cell it points to:
- + Increment the cell at pointer
- - Decrement the cell at pointer
- < Move the pointer toward's the program's end of the array
- > Move the pointer toward's the opponent's end of the array
- [ Jump forward to the instruction after the matching ] if the cell contain 0
- ] Jump back to the instruction after the matching [ if the cell is non-zero
- . do nothing
The example is an endless loop, moving right and setting cells to 0. It leaves behind a trail of cells set to 1.