Commit Graph

246 Commits

Author SHA1 Message Date
Maximilian Keßler 6258315a4f
database: convert hanab.live json files into readable tables for suits and variants 2023-05-12 15:35:18 +02:00
Maximilian Keßler a9026be6f6
rename suits file 2023-05-12 14:03:31 +02:00
Maximilian Keßler 1868fbad1f
add json file with information on all suits 2023-05-12 12:44:55 +02:00
Maximilian Keßler 3cc49b4813
stash 2023-05-11 15:15:15 +02:00
Maximilian Keßler a715bda02c
sat: support ClueStarved instances 2023-05-10 19:23:23 +02:00
Maximilian Keßler 3a1aee1502
sat: fix equivalence of clue incrementation 2023-05-10 17:44:41 +02:00
Maximilian Keßler 892c5ff7be
fix printing of model of sat 2023-05-10 17:44:16 +02:00
Maximilian Keßler 5598887c64
model clue starved in hanabi instances/games 2023-05-10 17:30:57 +02:00
Maximilian Keßler 9886e68084
correct return value in case of infeasible instance 2023-05-09 17:44:37 +02:00
Maximilian Keßler edcdaa8fd2
download: fix parsing of var id, better error handling 2023-05-08 23:27:47 +02:00
Maximilian Keßler c47ca7ccc5
sat.py: correctly export model after game ended 2023-05-08 23:25:09 +02:00
Maximilian Keßler d91dec3c81
add method to check replay for last feasible state (binary search) 2023-05-06 23:59:03 +02:00
Maximilian Keßler ab82ec00ed
insert into seeds db before into games 2023-05-06 23:51:26 +02:00
Maximilian Keßler 87524addd6
hanabi.py: support adding arbitrary clues for nicer replays 2023-05-06 22:03:23 +02:00
Maximilian Keßler 9fe456f0f9
hanabi.py add attribute to retrieve max score of instance 2023-05-06 20:13:36 +02:00
Maximilian Keßler 303158bc25
sat: annotate function return type. use deep copy for returning solution to avoid modifying passed game state 2023-05-06 19:41:50 +02:00
Maximilian Keßler bdefe7aa34
hanabi.py: do not set values when reading discard or play actions from json. add equality operator to Action type 2023-05-06 19:02:38 +02:00
Maximilian Keßler 71951ac929
adjust download method also for games whose seed is unknown before 2023-05-06 17:42:27 +02:00
Maximilian Keßler 3a00879e03
hanabi.py: implement taking arbitrary actions, support striking out 2023-05-06 17:41:33 +02:00
Maximilian Keßler 9cd87445f2
fix missing self. in hanabi.py 2023-05-06 12:29:52 +02:00
Maximilian Keßler 0e6067ffe3
add try/except block around subprocess 2023-05-06 09:06:01 +02:00
Maximilian Keßler 1172405994
add requirements.txt dependency file 2023-05-06 08:50:00 +02:00
Maximilian Keßler ce3d38537f
add pretty print method for decks 2023-03-18 15:18:04 +01:00
Maximilian Keßler 63146046e0
add methods to analyze individual suits and what cards to pick 2023-03-18 15:17:47 +01:00
Maximilian Keßler dee13938cf
adjust deck analyzer to use hanabi instances 2023-03-18 14:08:27 +01:00
Maximilian Keßler ddeb19265d
adjust sat solver to new files 2023-03-18 13:18:16 +01:00
Maximilian Keßler 8730551055
refactor greedy solver for new hanabi classes 2023-03-18 10:17:24 +01:00
Maximilian Keßler a056c83869
fix a few missing self attributes 2023-03-18 10:17:09 +01:00
Maximilian Keßler a90423e5c4
fix a few typos yielding errors 2023-03-18 01:27:32 +01:00
Maximilian Keßler 7aa8a78a9d
rewrite compress methods for new GameState object, proper error handling 2023-03-18 01:19:04 +01:00
Maximilian Keßler b0d0aaae1b
refactor: proper classes for hanabi instances and games 2023-03-18 01:17:32 +01:00
Maximilian Keßler c43b0fc475
deck_analyzer: also find seeds where handsize is too small to store all
valuables
2023-03-17 11:58:04 +01:00
Maximilian Keßler 93eca1f0b1
greedy_solver: remove global variables. allow exporting games with no actions 2023-03-17 11:55:46 +01:00
Maximilian Keßler 0851f83e12
compress.py: add method for colored output 2023-03-17 11:55:07 +01:00
Maximilian Keßler c381a4c129
compress.py: make executable and decompress argument from command line 2023-03-17 11:54:55 +01:00
Maximilian Keßler 0756bba205
better testing for greedy solver. implement better handling of copies of cards 2023-03-16 14:07:42 +01:00
Maximilian Keßler 27055fd07f
deck_analyzer: check for out of hand size (mostly 2p games) 2023-03-16 09:34:03 +01:00
Maximilian Keßler b819886ec5
add detection methods for seeds running out of pace 2023-03-15 16:41:22 +01:00
Maximilian Keßler 054112e272
add better method for instance solving: try greedy solver first 2023-03-15 15:45:22 +01:00
Maximilian Keßler 07d95e99f5
do not execute stuff when importing 2023-03-15 15:44:50 +01:00
Maximilian Keßler b2ab5be3d9
rename solve -> solve_sat, change output type to be an actual game 2023-03-15 15:44:33 +01:00
Maximilian Keßler 1a43648ac7
greedy solver: do not crash when crit is lost, just mark this 2023-03-15 15:44:03 +01:00
Maximilian Keßler 2807d2672a
ignore some output files 2023-03-15 15:43:14 +01:00
Maximilian Keßler b6b62e376f
add logger setup 2023-03-15 15:42:22 +01:00
Maximilian Keßler f9abc8b2f5
assertions in GameState class 2023-03-15 11:16:45 +01:00
Maximilian Keßler f0c1f112a0
adjust sat solver to handle mid-game states 2023-03-15 11:14:56 +01:00
Maximilian Keßler d71dba523c
add deck index to be stored with card, add hash method 2023-03-14 21:15:20 +01:00
Maximilian Keßler 9704411001
fix bug in replay creation: equal cards with different deck idx: replace correct one 2023-03-14 18:47:07 +01:00
Maximilian Keßler 4c98c4f645
compute winning percentage at end 2023-03-14 18:27:29 +01:00
Maximilian Keßler 97d2bf379d
implement handling of dupes in same players hands 2023-03-14 18:15:15 +01:00