rewrite board drawing using string interpolation

This commit is contained in:
Thibault Duplessis 2013-10-18 17:11:07 +02:00
parent 71bc9da047
commit 7da089a5f5

View file

@ -1,35 +1,30 @@
package lila.app
package ui
import lila.game.Pov
import chess.{ Pos, Color ChessColor }
import Pos._
import lila.game.Pov
object Board {
def render(pov: Pov) = {
val check = pov.game.check.??(_.key)
val board = pov.game.toChess.board
val moved: Pos Boolean =
val moved: Pos Boolean =
pov.game.toChessHistory.lastMove.fold((_: Pos) false) { last
pos last._1 == pos || last._2 == pos
}
pov.color.fold(white, black) map { s
"""<div class="lcs %s%s%s" id="%s" style="top:%dpx;left:%dpx;">""".format(
s.color,
if (s.pos.key == check) " check" else "",
if (moved(s.pos)) " moved" else "",
s.pos.key,
s.top,
s.left) ++
val ccheck = if (s.pos.key == check) " check" else ""
val cmoved = if (moved(s.pos)) " moved" else ""
s"""<div class="lcs ${s.color}$ccheck$cmoved" id="${s.pos.key}" style="top:${s.top}px;left:${s.left}px">""" ++
"""<div class="lcsi"></div>""" ++ {
board(s.pos).??(piece
"""<div class="lichess_piece %s %s"></div>""".format(
piece.role.name, piece.color.name)
s"""<div class="lichess_piece ${piece.role.name} ${piece.color.name}"></div>"""
)
} ++
"</div>"
} mkString
}