From 892c5ff7be98ca0b078a933f9195d0d0aa493b68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20Ke=C3=9Fler?= Date: Wed, 10 May 2023 17:44:16 +0200 Subject: [PATCH] fix printing of model of sat --- sat.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/sat.py b/sat.py index 2dd1dd1..e3a689e 100644 --- a/sat.py +++ b/sat.py @@ -8,6 +8,7 @@ from concurrent.futures import ProcessPoolExecutor from hanabi import DeckCard, Action, ActionType, GameState, HanabiInstance from compress import link, decompress_deck from greedy_solver import GreedyStrategy +from constants import COLOR_INITIALS # literals to model game as sat instance to check for feasibility @@ -298,14 +299,14 @@ def solve_sat(starting_state: GameState | HanabiInstance) -> Tuple[bool, Optiona def print_model(model, cur_game_state, ls: Literals): deck = cur_game_state.deck - for m in range(ls.max_moves): + for m in range(cur_game_state.instance.max_winning_moves): print('=== move {} ==='.format(m)) print('clues: ' + ''.join(str(i) for i in range(1, 9) if model.get_py_value(ls.clues[m][i]))) print('strikes: ' + ''.join(str(i) for i in range(1, 3) if model.get_py_value(ls.strikes[m][i]))) print('draw: ' + ', '.join('{}: {}'.format(i, deck[i]) for i in range(cur_game_state.progress, 50) if model.get_py_value(ls.draw[m][i]))) print('discard: ' + ', '.join('{}: {}'.format(i, deck[i]) for i in range(50) if model.get_py_value(ls.discard[m][i]))) - for s in range(0, ls.num_suits): - print('progress {}: '.format(COLORS[s]) + ''.join(str(r) for r in range(1, 6) if model.get_py_value(ls.progress[m][s, r]))) + for s in range(0, cur_game_state.instance.num_suits): + print('progress {}: '.format(COLOR_INITIALS[s]) + ''.join(str(r) for r in range(1, 6) if model.get_py_value(ls.progress[m][s, r]))) flags = ['discard_any', 'draw_any', 'play', 'play5', 'incr_clues', 'strike', 'extraround', 'dummyturn'] print(', '.join(f for f in flags if model.get_py_value(getattr(ls, f)[m])))