Skip to content

Commit

Permalink
add Tags.boardNumber
Browse files Browse the repository at this point in the history
  • Loading branch information
ornicar committed Jun 12, 2024
1 parent 5e54296 commit b7447c4
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions core/src/main/scala/format/pgn/Tag.scala
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,7 @@ case class Tags(value: List[Tag]) extends AnyVal:

def clockConfig: Option[Clock.Config] =
value
.collectFirst { case Tag(Tag.TimeControl, str) =>
str
}
.collectFirst { case Tag(Tag.TimeControl, str) => str }
.flatMap(Clock.readPgnConfig)

def variant: Option[chess.variant.Variant] =
Expand Down Expand Up @@ -73,6 +71,14 @@ case class Tags(value: List[Tag]) extends AnyVal:
Tags.tagIndex.getOrElse(tag.name, 999)
)

def boardNumber: Option[Int] =
apply(_.Board)
.flatMap(_.toIntOption)
.orElse: // Round 1.x is sometimes used for board x
apply(_.Round)
.flatMap(_.split('.').lift(1))
.flatMap(_.toIntOption)

def names: ByColor[Option[PlayerName]] = ByColor(apply(_.White), apply(_.Black)).map(PlayerName.from(_))
def elos: ByColor[Option[Elo]] = ByColor(apply(_.WhiteElo), apply(_.BlackElo)).map: elo =>
Elo.from(elo.flatMap(_.toIntOption))
Expand Down

0 comments on commit b7447c4

Please sign in to comment.