We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
2 parents a2a794f + b59af4c commit a50f730Copy full SHA for a50f730
1 file changed
8queens.py
@@ -0,0 +1,28 @@
1
+BOARD_SIZE = 8
2
+
3
+class BailOut(Exception):
4
+ pass
5
6
+def validate(queens):
7
+ left = right = col = queens[-1]
8
+ for r in reversed(queens[:-1]):
9
+ left, right = left-1, right+1
10
+ if r in (left, col, right):
11
+ raise BailOut
12
13
+def add_queen(queens):
14
+ for i in range(BOARD_SIZE):
15
+ test_queens = queens + [i]
16
+ try:
17
+ validate(test_queens)
18
+ if len(test_queens) == BOARD_SIZE:
19
+ return test_queens
20
+ else:
21
+ return add_queen(test_queens)
22
+ except BailOut:
23
24
25
26
+queens = add_queen([])
27
+print (queens)
28
+print ("\n".join(". "*q + "Q " + ". "*(BOARD_SIZE-q-1) for q in queens))
0 commit comments