A game from the ORMC
Go to file
Mark 4ee7f8a9ac
Minor cleanup & utilities
2024-03-06 09:55:47 -08:00
.vscode Added meta files 2024-02-26 08:54:21 -08:00
src Minor cleanup & utilities 2024-03-06 09:55:47 -08:00
.editorconfig Added meta files 2024-02-26 08:54:21 -08:00
.gitignore Added meta files 2024-02-26 08:54:21 -08:00
Cargo.lock Cleanup 2024-03-05 14:35:26 -08:00
Cargo.toml Cleanup 2024-03-05 14:35:26 -08:00
README.md Cleanup 2024-03-05 14:58:36 -08:00
rustfmt.toml Added meta files 2024-02-26 08:54:21 -08:00

README.md

Minimax

Rules

This game is played in two rounds, starting with an empty eleven-space board. Red always goes first.

On Red's board (i.e, duing the first round), Red's job is to maximize the value of the expression; Blue's job is to minimize it. Players take turns placing the fourteen symbols 0123456789+-×÷ on the board, with the maximizing player taking the first move.

A board's syntax must always be valid. Namely, the following rules are enforced:

  • Each symbol may only be used once
  • The binary operators +-×÷ may not be next to one another, and may not be at the end slots.
  • The unary operator - (negative) must have a number as an argument. Therefore, it cannot be left of an operator (like -×), and it may not be in the rightmost slot.
  • 0 may not follow ÷. This prevents most cases of zero-division, but isn't perfect. ÷-0 will break the game, and ÷0_+ is forbidden despite being valid syntax once the empty slot is filled (for example, with ÷03+). This is done to simplyify game logic, and might be improved later.

Building & Running

As always, run this project with cargo run. The app takes one argument by default: the name of the blue player. This can be any of the following:

  • human: Play against a human
  • random: Play against a random agent (very easy)
  • chase: Play against a simple extremum-chasing agent (easy)
  • diffuse: Play against a slightly more intellegent extremum chaser (medium)

For example, cargo run -- random will play a game against a random player. Use your arrow keys and space bar to play the game.

Additional options are available, see cargo run -- --help.