Refactor coffee route to use a new matrix generation function for improved solvability
This commit is contained in:
parent
87b5e86c1e
commit
193c2aec70
1 changed files with 23 additions and 1 deletions
|
@ -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("/")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue