Refactor coffee route to use a new matrix generation function for improved solvability

This commit is contained in:
Yaro Kasear 2025-07-28 09:40:53 -05:00
parent 87b5e86c1e
commit 193c2aec70

View file

@ -8,10 +8,32 @@ from .. import db
from ..models import WorkLog, Inventory
from ..utils.load import eager_load_worklog_relationships, eager_load_inventory_relationships
def generate_solvable_matrix(level, seed_clicks=None):
size = level + 3
matrix = [[True for _ in range(size)] for _ in range(size)]
def toggle(x, y):
for dx in [-1, 0, 1]:
for dy in [-1, 0, 1]:
nx, ny = x + dx, y + dy
if 0 <= nx < size and 0 <= ny < size:
matrix[nx][ny] = not matrix[nx][ny]
# Pick a number of random "clicks"
num_clicks = seed_clicks if seed_clicks is not None else random.randint(size, size * 2)
for _ in range(num_clicks):
x = random.randint(0, size - 1)
y = random.randint(0, size - 1)
toggle(x, y)
return matrix
@main.route("/12648243")
def coffee():
level = request.args.get('level', 0, int)
matrix = [[random.choice([True, False]) for _ in range(level + 3)] for _ in range(level + 3)]
matrix = generate_solvable_matrix(level)
return render_template("coffee.html", matrix=matrix, level=level)
@main.route("/")