Add some convenience DSL methods

pull/1/merge
Thibault Duplessis 2012-02-21 23:44:47 +01:00
parent 778f917275
commit 327b05d9b7
2 changed files with 5 additions and 1 deletions

View File

@ -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)

View File

@ -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