From 193c2aec70718b7d9855dcd5759146f055ec0c95 Mon Sep 17 00:00:00 2001 From: Yaro Kasear Date: Mon, 28 Jul 2025 09:40:53 -0500 Subject: [PATCH] Refactor coffee route to use a new matrix generation function for improved solvability --- inventory/routes/index.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/inventory/routes/index.py b/inventory/routes/index.py index e7d6a3e..58ed4ce 100644 --- a/inventory/routes/index.py +++ b/inventory/routes/index.py @@ -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("/")