semantique / levels /emotion.py
Ben Blaker
feat(hint): make the betrayed hint more obvious (#77)
c7be0b3 unverified
Raw
History Blame Contribute Delete
1.25 kB
"""The emotion board β€” the second level, reached from the animal board.
Grid geometry note: a 4x4 grid graph is bipartite, so start/⏎ placement
fixes sentence-length parity. With start at (1,1) and ⏎ at (2,3) (Manhattan
distance 3), walks have odd hop counts and sentences even word counts -- which
is what makes a two-word read like "not sad" reachable.
"""
from levels._base import Level
LEVEL = Level(
id="emotion",
title="feelings",
grid=[
["yikes", "very", "fast", "annoy"],
["little", "start", "great", "!"],
["hurt", "not", "sad", "⏎"],
["again", "?", "angry", "disturb"],
],
start=(1, 1), # row, col of the start tile
targets=["happy", "elated", "irked", "scared", "distraught", "furious", "betrayed"], # collect them all
labels=["happy", "elated", "irked", "scared", "distraught", "furious", "betrayed"],
budget=10,
order=0, # the boot board; progression is feelings β†’ bonus β†’ critters
home=True,
# only "betrayed" is hintable here β€” its cryptic riddle (the modal slays him
# Γ  la Et tu Brute); every other feeling you're on your own. See game.js.
solutions={"betrayed": 'Et tu Brute? I feel "little hurt again ? angry sad" (betrayed)'},
)