diff --git a/generator/__main__.py b/generator/__main__.py
index 78881d5..4b13ab2 100644
--- a/generator/__main__.py
+++ b/generator/__main__.py
@@ -1,6 +1,6 @@
from jinja2 import Environment, select_autoescape, FileSystemLoader
-from generator.model import Board, NOT_DETERMINED, WIN
+from generator.model import Board, NOT_DETERMINED, WIN, Move
from generator.tictactoe import calculate_best_move
import random
@@ -29,37 +29,38 @@ def get_taunt(board, outcome):
return ""
-def render_board(initial_prefix, prefix, board, outcome):
- with open("output/" + prefix + ".html", "w") as file:
+def render_board(prefix, old_board, board, outcome):
+ with open("output/" + prefix + old_board.getId() + ".html", "w") as file:
file.write(
template.render(
board=board,
prefix=prefix,
- reset=initial_prefix + ".html",
- msg=get_taunt(board, outcome)
+ reset=prefix + ".html",
+ msg=get_taunt(board, outcome),
+ Move=Move,
)
)
-def generate_options(initial_prefix, prefix, board, outcome):
- render_board(initial_prefix, prefix, board, outcome)
+def generate_options(prefix, old_board, board, outcome):
+ render_board(prefix, old_board, board, outcome)
if board.winner() == NOT_DETERMINED:
for move in board.moves():
future = board.apply(move)
response, outcome = calculate_best_move(future)
- print(prefix, move, response)
+ print(board.getId(), move, response)
generate_options(
- initial_prefix,
- prefix + str(move),
+ prefix,
+ future,
future.apply(response) if response else future,
- outcome
+ outcome
)
if __name__ == "__main__":
board = Board()
- generate_options("index", "index", board, NOT_DETERMINED)
+ generate_options("index", board, board, NOT_DETERMINED)
diff --git a/generator/model.py b/generator/model.py
index 2e53931..ce7a9e7 100644
--- a/generator/model.py
+++ b/generator/model.py
@@ -97,6 +97,18 @@ class Board:
return DRAW
+
+ def getId(self):
+ id = 0
+ for y in range(3):
+ for x in range(3):
+ id += self.field[y][x] * int(pow(3, (y * 3 + x)))
+ if id == 0:
+ return ""
+ else:
+ return hex(id)[2:]
+
+
def visualize(self):
for y in range(3):
for x in range(3):
diff --git a/generator/template.html b/generator/template.html
index 7d4cc6f..65db225 100644
--- a/generator/template.html
+++ b/generator/template.html
@@ -25,7 +25,7 @@
{%- elif winner != -1 -%}
{%- else -%}
- ?
+ ?
{%- endif -%}
{%- endfor -%}