Commit graph

190 commits

Author SHA1 Message Date
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
0dbeb6e202
remove unused hash function 2023-11-15 22:09:34 +01:00
4b427c40f9
Code cleanup: split download into parsing + downloads 2023-11-15 21:47:50 +01:00
6ce692a06f
improve program output and CLI documentation 2023-11-15 16:53:49 +01:00
ac4cf5e797
Fix unique ids to allow for discarded / lost cards 2023-11-14 14:32:49 +01:00
27b8c08ed4
more debug checks: do not use tablebase lookup and therefore check tablebase consistency 2023-11-14 13:19:33 +01:00
88cfbe21f3
set clue modifier to 0 by default 2023-11-14 13:13:49 +01:00
812a5dc790
add assertion: check no double-initialization 2023-11-12 23:50:48 +01:00
d3328725c7
better output in case of too short replays 2023-11-12 18:32:19 +01:00
32af52ae9e
Rework CLI
This should cover all use cases / exceptions now and is in a reasonably
good code state.
2023-11-12 17:30:44 +01:00
3f69d0ac71
rename file 2023-11-12 14:58:25 +01:00
6f5419b2d8
fix find_card_in_hand function: respect different representation of trash 2023-11-11 23:30:01 +01:00
0a8facb585
better output: display when draw pile size not feasible 2023-11-11 22:57:09 +01:00
a615733350
Fix: Correctly handle bombing of cards and reverting thereof 2023-11-11 22:52:28 +01:00
5308eeaf6e
rework moving forward/backward in game 2023-11-11 22:32:30 +01:00
f3fe367988
enable opt assertions in relwithdebinfo build 2023-11-11 13:48:55 +01:00
571011d7b5
Revert "add more checks: same draw pile after reverting single moves (bug detected)"
This reverts commit a3972fe637.
2023-11-11 13:32:18 +01:00
6190040c25
fix assertions 2023-11-11 13:29:55 +01:00
ab31588dbb
bugfix: correctly revert manual cases even when rotate_next_draw was used 2023-11-11 13:28:43 +01:00
b9b73406f2
bugfix: have switch for card cycling in play/discard methods as well 2023-11-11 13:07:15 +01:00
a3972fe637
add more checks: same draw pile after reverting single moves (bug detected) 2023-11-11 12:41:14 +01:00
1266791750
add missing game_state.cpp file 2023-11-11 12:40:36 +01:00
5b0834bc22
bugfix: card cycling on reverting only used internally
This ensures that when doing a regular revert,
we revert to exactly the same state (i.e. also identical
ordering of draw pile by default)
and only rotate the draw pile in case we ensure internally
that we iterate over all possible draws so that the ordering
is restored in the end.
2023-11-11 12:15:54 +01:00
b6a2dfb855
add integrity check for draw pile 2023-11-11 11:44:37 +01:00
59709e2375
rework -r option: solve state in reverse order 2023-11-11 11:44:06 +01:00
7eb1364e36
catch games where specified draw pile is not feasible 2023-11-11 07:58:10 +01:00
8f6d8c68fe
add option to analyze all different clue counts 2023-11-11 01:27:54 +01:00
280833ff1f
add options to alter clue counts 2023-11-11 00:01:18 +01:00
acece2a952
add command line option to print all future game states as well 2023-11-10 21:44:29 +01:00
6dd2b07c09
game state: fix taking actions: rotate draw correctly 2023-11-10 21:42:09 +01:00
9af6ef3368
rework downloading interface: return game consisting of state and actions 2023-11-10 20:35:05 +01:00
89bab62032
add option to select game state by draw pile size 2023-11-10 15:08:37 +01:00
c40aae3c4b
respect option on whether to start interactive shell 2023-11-10 14:17:55 +01:00
2debafe5d6
use option-driven command line interface 2023-11-10 14:12:50 +01:00
4e67ffa9ee
Add optional argument to define score being optimized for
A third CLI argument is now accepted, describing a score goal.
The program will then treat reaching this score as a win and
calculate lines optimized for this score, ignoring any (possible)
higher scores.
2023-11-04 13:02:16 +01:00
87c429e586
remove extra ; 2023-10-13 00:18:08 +02:00
b69cb6d974
Rework probability printing
Outputting of probabilities is now done in unified way.
This ensures that we can handle both rational and floating-point
probabilities in all program parts properly.

The compile-time macro
NUSE_RATIONAL_PROBABILITIES
can now be defined to use floating-point probabilities instead
of real rational ones.

Using floating-point results in roughly 10% speedup.
2023-10-02 12:37:24 +02:00
0cc069485d
CLI: align action probabilities in output 2023-09-26 23:20:49 +02:00
3fd64bc70f
CLI: sort by probability when asking for draw
Also better alignment of output in list of drawable cards
2023-09-26 22:26:36 +02:00
129f8ceaec
fix links in readme 2023-09-22 20:28:27 +02:00
4adb835e7e
further readme cleanup 2023-09-22 19:00:57 +02:00
f1e415241a
fix some readme errors 2023-09-22 18:59:21 +02:00
bc3af305ea
better installation instructions 2023-09-22 18:57:38 +02:00
f300c61c81
cli: treat currently played card as trash in draw selection 2023-09-22 15:27:27 +02:00
fdd59216f6
fix: proper linking against readline 2023-09-19 19:25:27 +02:00
f02870c975
clean up unused var 2023-09-19 18:17:42 +02:00
71dbc0d473
Improve quitting: catch SIGINT and ask for confirmation 2023-09-19 17:54:21 +02:00
05d348b7e4
correct action parsing 2023-09-14 17:06:06 +02:00
3211a20c9c
better usage printing in cli 2023-09-06 12:05:29 +02:00
dc340b2447
better usage 2023-09-06 12:02:08 +02:00