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:
@@ -178,7 +178,10 @@ def build_queens_trace(board_size):
|
||||
})
|
||||
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):
|
||||
continue
|
||||
|
||||
@@ -374,9 +377,14 @@ def check():
|
||||
|
||||
@main_bp.route("/solve")
|
||||
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"))
|
||||
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")
|
||||
|
||||
@@ -75,6 +75,16 @@ def test_check_endpoint_applies_different_rules_for_queens_and_rooks(client):
|
||||
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):
|
||||
user_factory(username="alice", password="Password123!")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user