I hereby claim:
- I am privateblue on github.
- I am mikolajszabo (https://keybase.io/mikolajszabo) on keybase.
- I have a public key ASBPSbXL4MOm_Zallxta1cyZqgEZSGT0IMRGzLHaK-Owrgo
To claim this, I am signing this object:
I hereby claim:
To claim this, I am signing this object:
case class Point(x: Int, y: Int) { | |
lazy val neighbours = Set(Point(x-1,y), Point(x+1,y), Point(x,y-1), Point(x,y+1)) | |
} | |
case class Polyomino(squares: Set[Point]) { | |
def op(f: Point => Point) = copy(squares = squares.map(f)) | |
val order = squares.size | |
lazy val mx = if (squares.isEmpty) 0 else squares.map(_.x).max |
object nqueens1 { | |
import math._ | |
case class V(x: Int, y: Int) { | |
def -(v: V): V = V(x - v.x, y - v.y) | |
} | |
def solve(n: Int): List[V] = attempt(n, grid(n), List()) | |
// given an expected queen count, a list of still available squares, and a |
object nqueens2 { | |
import math._ | |
case class V(x: Int, y: Int) { | |
def -(v: V): V = V(x - v.x, y - v.y) | |
def +(v: V): V = V(x + v.x, y + v.y) | |
def lineWith(v: V, n: Int): List[V] = extend(v, n) ++ v.extend(this, n) |