mirror of
https://github.com/sigmasternchen/html-tictactoe
synced 2025-03-15 03:28:55 +00:00
feat: Add taunts
This commit is contained in:
parent
267ae7e682
commit
b9256901f6
2 changed files with 38 additions and 10 deletions
|
@ -1,39 +1,65 @@
|
|||
from jinja2 import Environment, select_autoescape, FileSystemLoader
|
||||
|
||||
from generator.model import Board, NOT_DETERMINED
|
||||
from generator.model import Board, NOT_DETERMINED, WIN
|
||||
from generator.tictactoe import calculate_best_move
|
||||
|
||||
import random
|
||||
|
||||
env = Environment(
|
||||
loader=FileSystemLoader(["./generator"]),
|
||||
autoescape=select_autoescape()
|
||||
)
|
||||
template = env.get_template("template.html")
|
||||
|
||||
taunts = [
|
||||
"Looks like you’re just one step away from defeat! Better luck next time!",
|
||||
"You might want to start practicing your ‘congratulations’ speech for me!",
|
||||
"I hope you’re ready to accept your fate—because it’s coming fast!",
|
||||
"You can almost hear the victory music playing for me, can’t you?",
|
||||
"You’re about to witness a masterclass in losing—starring you!",
|
||||
"You’re on the express train to defeat, and I’m the conductor!"
|
||||
]
|
||||
|
||||
def render_board(initial_prefix, prefix, board):
|
||||
random.seed(1337)
|
||||
|
||||
def get_taunt(board, outcome):
|
||||
if outcome == WIN and board.winner() == NOT_DETERMINED:
|
||||
return random.choice(taunts)
|
||||
else:
|
||||
return ""
|
||||
|
||||
|
||||
def render_board(initial_prefix, prefix, board, outcome):
|
||||
with open("output/" + prefix + ".html", "w") as file:
|
||||
file.write(template.render(board=board, prefix=prefix, reset=initial_prefix + ".html"))
|
||||
pass
|
||||
file.write(
|
||||
template.render(
|
||||
board=board,
|
||||
prefix=prefix,
|
||||
reset=initial_prefix + ".html",
|
||||
msg=get_taunt(board, outcome)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
def generate_options(initial_prefix, prefix, board):
|
||||
render_board(initial_prefix, prefix, board)
|
||||
def generate_options(initial_prefix, prefix, board, outcome):
|
||||
render_board(initial_prefix, prefix, board, outcome)
|
||||
|
||||
if board.winner() == NOT_DETERMINED:
|
||||
for move in board.moves():
|
||||
future = board.apply(move)
|
||||
response, _ = calculate_best_move(future)
|
||||
response, outcome = calculate_best_move(future)
|
||||
|
||||
print(prefix, move, response)
|
||||
|
||||
generate_options(
|
||||
initial_prefix,
|
||||
prefix + str(move),
|
||||
future.apply(response) if response else future
|
||||
future.apply(response) if response else future,
|
||||
outcome
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
board = Board()
|
||||
|
||||
generate_options("index", "index", board)
|
||||
generate_options("index", "index", board, NOT_DETERMINED)
|
||||
|
|
|
@ -10,6 +10,8 @@
|
|||
|
||||
{%- set winner = board.winner() -%}
|
||||
|
||||
<h3>{{ msg }}</h3>
|
||||
|
||||
<a href={{ reset }}>Start over</a>{{- "" -}}
|
||||
<br /><br />{{- "" -}}
|
||||
<table border=1 cellpadding=10>
|
||||
|
@ -48,4 +50,4 @@
|
|||
<hr />{{- "" -}}
|
||||
<a href="https://github.com/sigmasternchen/html-tictactoe">Source Code</a>{{- "" -}}
|
||||
</body>{{- "" -}}
|
||||
</html>
|
||||
</html>
|
||||
|
|
Loading…
Reference in a new issue