Add some convenience DSL methods
parent
778f917275
commit
327b05d9b7
|
@ -5,6 +5,8 @@ import Pos._
|
|||
|
||||
case class Board(pieces: Map[Pos, Piece], taken: List[Piece] = Nil) {
|
||||
|
||||
def apply(at: Pos): Option[Piece] = pieces get at
|
||||
|
||||
def place(piece: Piece) = new {
|
||||
def at(at: Pos): Valid[Board] =
|
||||
if (pieces contains at) failure("Cannot move to occupied " + at)
|
||||
|
|
|
@ -9,7 +9,9 @@ case object Bishop extends Role
|
|||
case object Knight extends Role
|
||||
case object Pawn extends Role
|
||||
|
||||
sealed trait Color
|
||||
sealed trait Color {
|
||||
def /(role: Role) = Piece(this, role)
|
||||
}
|
||||
case object White extends Color
|
||||
case object Black extends Color
|
||||
|
||||
|
|
Loading…
Reference in New Issue