@@ -19,7 +19,8 @@ class QueensSuite extends FunSuite {
19
19
case class State (
20
20
busyRows: Set [Int ],
21
21
busyColumns: Set [Int ],
22
- busyDiagonals: Set [Int ],
22
+ busyLRDiagonals: Set [Int ],
23
+ busyRLDiagonals: Set [Int ],
23
24
queens : Set [(Int ,Int )]
24
25
);
25
26
@@ -31,12 +32,14 @@ class QueensSuite extends FunSuite {
31
32
for {
32
33
i <- 0 until N if ! state.busyRows.contains(i)
33
34
j <- 0 until N if ! state.busyColumns.contains(j) &&
34
- ! (state.busyDiagonals.contains(i- j))
35
+ ! state.busyLRDiagonals.contains(i- j) &&
36
+ ! state.busyRLDiagonals.contains(i+ j)
35
37
} {
36
38
val newPos = (i,j)
37
39
val nState = state.copy( busyRows = state.busyRows + i,
38
40
busyColumns = state.busyColumns + j,
39
- busyDiagonals = state.busyDiagonals + (i- j),
41
+ busyLRDiagonals = state.busyLRDiagonals + (i- j),
42
+ busyRLDiagonals = state.busyRLDiagonals + (i+ j),
40
43
queens = state.queens + newPos )
41
44
ch.write(nState)
42
45
}
@@ -53,7 +56,7 @@ class QueensSuite extends FunSuite {
53
56
state
54
57
}
55
58
56
- val emptyState = State (Set .empty, Set .empty, Set .empty, Set .empty)
59
+ val emptyState = State (Set .empty, Set .empty, Set .empty, Set .empty, Set .empty )
57
60
58
61
test(" first solution for 8 queens problem" ) {
59
62
async[Future ] {
@@ -64,5 +67,4 @@ class QueensSuite extends FunSuite {
64
67
}
65
68
66
69
67
-
68
70
}
0 commit comments