Skip to content

Releases: Arc676/Amazons

Version 1.2.1

19 Sep 12:50
Compare
Choose a tag to compare

Fixes an edge case with square control: if both players control the exact same number of squares1, then the current player (whoever made the last move) wins. This is because their opponent makes the first move within the regions with tied areas and will therefore exhaust their empty squares first.

This release also adds a winner-checking function to the library, moving the game termination check from the frontend to the backend. Note the updated description of this function in 8b4589a.

1: This scenario can be achieved, for example, on 2x3 grid with the following input/moves starting from game launch (no standard configuration followed by all required inputs).

n 1 1 2 3 0 0 1 2 0 0 1 0 1 1 1 2 0 2 0 1

Version 1.2

16 Sep 14:45
Compare
Choose a tag to compare

This release brings a long overdue feature to the library: checking whether the result of the game is decided based on region control. If the board is divided into regions that are controlled by a single player each (or regions where neither player can move), then the game is decided: whoever controls more squares wins1.

Also bug fixes.

1: If there are edge cases I haven't considered, please open an issue.

Version 1.1

17 Jun 08:40
Compare
Choose a tag to compare

This new version of the Amazons library includes an update to the header to allow linking with C++ and inverts the axes so X and Y coordinates correspond to the standard axis directions when visualizing memory access.

Version 1.0

28 Apr 20:55
Compare
Choose a tag to compare

The Game of the Amazons backend library provides data types and methods for internal representation and alteration of the game state of a match of Game of the Amazons. The library supports arbitrary starting configurations including arbitrary board size and starting positions for the players. Players can also play with any number of Amazons. Game state alteration methods include validation of the move.

The frontend is functional but there are missing validation checks, printing large boards may end up exceeding the size of the terminal window if the board is large enough or the window is small enough, and it may be difficult to determine the exact coordinates of any square. Additionally, the axes are inverted. In short, little effort has been made to ensure the user-friendliness of the command line frontend. The library is the primary feature of this repository.