Skip to content

Commit 28fa5c1

Browse files
committed
♻️ specific SmallBoard for 3x3
1 parent 3f02ff2 commit 28fa5c1

File tree

1 file changed

+8
-6
lines changed
  • src/main/scala/com/truelaurel/math/geometry/grid

1 file changed

+8
-6
lines changed

src/main/scala/com/truelaurel/math/geometry/grid/Masks.scala

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,16 @@ package com.truelaurel.math.geometry.grid
22

33
case class Masks(size: Int, needed: Int) {
44
val empty = GridData(size)
5-
val matrixIndices = for {
5+
6+
val matrixIndices: Seq[(Int, Int)] = for {
67
r0 <- 0 to size - needed
78
c0 <- 0 to size - needed
89
} yield (r0, c0)
10+
911
val matricesCompleted: Set[Long] =
1012
(preComputedMatricesRows ++ preComputedMatricesCols :+ preComputedMatricesDiag1 :+ preComputedMatricesDiag2).toSet
1113

12-
def isComplete(grid: GridData) =
14+
def isComplete(grid: GridData): Boolean =
1315
matrixIndices.exists {
1416
case (r0, c0) =>
1517
val gsm = grid.subMatrix(r0, c0, needed)
@@ -20,30 +22,30 @@ case class Masks(size: Int, needed: Int) {
2022
(0 until needed).map(row => (for {
2123
c <- 0 until needed
2224
i = row * needed + c
23-
bit = (1L << i)
25+
bit = 1L << i
2426
} yield bit).sum)
2527

2628
def preComputedMatricesCols: Seq[Long] =
2729
(0 until needed).map(col => (for {
2830
r <- 0 until needed
2931
i = r * needed + col
30-
bit = (1L << i)
32+
bit = 1L << i
3133
} yield bit).sum)
3234

3335
def preComputedMatricesDiag1: Long =
3436
(for {
3537
r <- 0 until needed
3638
c = r
3739
i = r * needed + c
38-
bit = (1L << i)
40+
bit = 1L << i
3941
} yield bit).sum
4042

4143
def preComputedMatricesDiag2: Long =
4244
(for {
4345
r <- 0 until needed
4446
c = needed - 1 - r
4547
i = r * needed + c
46-
bit = (1L << i)
48+
bit = 1L << i
4749
} yield bit).sum
4850

4951
}

0 commit comments

Comments
 (0)