Commit graph

14 commits

Author SHA1 Message Date
5c4a2bb4f7
Store rationals without denominator
Instead of storing a rational for evey game state,
we just store how many of the factorial(draw pile size) many
game states can be won.
This allows us to save only one 64-bit integer per game state instead of
two and thus reduces memory consumption of the program significantly.
Also, this makes some computations a bit easier, since we do not have to
normalize when recursing - we can just add the numbe of winnable states
for each possible draw.

On the other hand, this means that upon lookup, we have to normalize the
stored values again to retrieve the probabilities.
In particular, one needs to know what the draw pile size of the game
state is in order to interpret the value of the state.
2024-02-09 15:58:15 +01:00
afb6fee540
intoduce CLI option to reduce memory consumption 2024-02-08 22:08:44 +01:00
5507f8e5dc
Introduce using directive for map type
This sets up for quick testing of different maps with the same interface
2024-02-07 18:59:08 +01:00
863baf3acd
consider playing trash at 8 clues 2024-01-17 18:22:20 +01:00
191e74e45f
Use C++17 to support older compilers 2024-01-14 18:04:27 +01:00
84b95e7214
expand getting actions: include non-reasonable actions on request 2024-01-13 00:48:57 +01:00
35b78cb4db
Implement option to list all actions in replay 2024-01-12 23:21:58 +01:00
4ba61b0450
implement criticality of cards 2024-01-12 14:27:16 +01:00
486e459c68
handle CS games on download 2024-01-09 02:21:01 +01:00
8cc30eb270
add comments 2023-11-16 16:29:41 +01:00
ea881c5e6a
reformat code 2023-11-16 16:20:04 +01:00
bdc65411ae
simplify types 2023-11-15 23:23:21 +01:00
6e0e88b97a
clean up imports 2023-11-15 23:07:39 +01:00
3244213daa
Split GameState into multiple files
This now allows to import a light-weight header containing
the abstract interface separately from the templated header
that manages the actual backtracking, thus speeding up compilation.
2023-11-15 22:58:09 +01:00