Made queen solution pick a random one to load, trace queen also picks random one, but diffrently (just cahnged starting pos)

This commit is contained in:
2026-06-08 20:33:09 +02:00
parent 65a60356dd
commit 62bd333dc4
2 changed files with 21 additions and 3 deletions
+11 -3
View File
@@ -178,7 +178,10 @@ def build_queens_trace(board_size):
}) })
return True return True
for col in range(board_size): candidate_columns = list(range(board_size))
random.shuffle(candidate_columns)
for col in candidate_columns:
if not is_queen_position_safe(row, col): if not is_queen_position_safe(row, col):
continue continue
@@ -374,9 +377,14 @@ def check():
@main_bp.route("/solve") @main_bp.route("/solve")
def solve_queens_route(): def solve_queens_route():
"""Return all queens solutions for the requested board size.""" """Return one random queens solution for the requested board size."""
board_size = parse_board_size(request.args.get("size")) board_size = parse_board_size(request.args.get("size"))
return jsonify(solve_queens(board_size)) queen_solutions = solve_queens(board_size)
if not queen_solutions:
return jsonify([])
return jsonify(random.choice(queen_solutions))
@main_bp.route("/solve_trace") @main_bp.route("/solve_trace")
+10
View File
@@ -75,6 +75,16 @@ def test_check_endpoint_applies_different_rules_for_queens_and_rooks(client):
assert rooks_response.get_json() == {"valid": True} assert rooks_response.get_json() == {"valid": True}
def test_solve_endpoint_returns_one_valid_4x4_queens_solution(client):
response = client.get("/solve?size=4")
assert response.status_code == 200
assert tuple(response.get_json()) in {
(1, 3, 0, 2),
(2, 0, 3, 1),
}
def test_authenticated_user_can_save_and_load_a_game_state(client, app_instance, user_factory, login_as): def test_authenticated_user_can_save_and_load_a_game_state(client, app_instance, user_factory, login_as):
user_factory(username="alice", password="Password123!") user_factory(username="alice", password="Password123!")