Esowar
Esowar is a virtual board game played by at least two players discovered by User:Orby in May of 2020.
Introduction
Esowar is played on a board that is a sequence of n squares in a row where n is 100,000 times the number of players. On each square is written one of seven symbols. Each player has two agents that walk around the board: a commander and a robot. The commander issues commands to the robot. At the beginning of your turn, your commander reads the symbol on which she is standing and performs the associated instruction.
Symbol | Value | Instruction |
---|---|---|
r | 0 | Walk right. |
d | 1 | Die. When your commander reads this symbol, you lose. |
> | 2 | Tell your robot to walk right, then walk right. |
< | 3 | Tell your robot to walk left, then walk right. |
+ | 4 | Tell your robot to change the symbol on which she is standing, then walk right. |
[ | 5 | If your robot is on a r symbol, then walk right until you pass the matching ]. Otherwise walk right one square. |
] | 6 | Walk left until you are standing on the matching [. |
Notes:
- The + symbol instructs your commander to tell your robot to change the symbol on which your robot is standing to the next symbol in the symbol table, incrementing the value. For example, > becomes <. The ] symbol becomes r.
- The [ and ] symbols come in pairs and are matched like parentheses. If your commander attempts to walk to a matching [ or ] symbol that does not exist, then she dies.
- If your commander or your robot walk off the right side of the board, then they are placed on the left most square of the board. If your commander or your robot walk off the left side of the board, then they are placed on the right most square of the board.
Setup
Each player constructs a base in advance. A base is a sequence of up to ten thousand symbols. Each player's base is written to a random position on the board such that they do not overlap. All other squares are initially set to r. Each player's commander starts at the left-most square of their base. Each player's robot begins on a random square.
Winning
If your commander reads a d symbol, then you lose. If you are the last player remaining, then you win. To win, you must get your robot to write a d to a square onto which your opponent's commander will walk. If n turns have elapsed without a winner, where n is 1,000,000 times the number of players, then the game is a tie between the remaining living players.
Examples
Sweeper
A key component of base construction is keeping your commander inside your base. The following base will do that and fill the board with d symbols from right to left. If your opponent's base is to the right of yours on the board, you might win. Of course, you cannot control where bases are initially placed.
[+]+[<[+]+]
Your commander will begin on the left-most [ symbol.
Smart sweeper
The following base is similar to Sweeper, but it avoids suiciding. This base will scan from right to left. When it encounters a symbol which is not d, it replaces it with d. When it encounters a d symbol, it enters a [<] loop. This causes it to skip over itself.
[+]+[[[+]+<++++++][+]+[<][+]+]d
See also
- Implementation of Esowar in C.
- BF Joust is a similar concept.
- Official Esowar tournament server.