diff options
Diffstat (limited to 'src/main/scala/me/robbyzambito/othello/game/Game.scala')
-rw-r--r-- | src/main/scala/me/robbyzambito/othello/game/Game.scala | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/main/scala/me/robbyzambito/othello/game/Game.scala b/src/main/scala/me/robbyzambito/othello/game/Game.scala index 8072bf1..ea8c382 100644 --- a/src/main/scala/me/robbyzambito/othello/game/Game.scala +++ b/src/main/scala/me/robbyzambito/othello/game/Game.scala @@ -1,5 +1,6 @@ package me.robbyzambito.othello.game +import scala.annotation.tailrec import scala.io.StdIn import scala.util.Try @@ -18,6 +19,15 @@ case class Game(board: Board, val currentPlayer: Player = players(turnCount % players.length) val currentOpponent: Player = players(turnCount % players.length) + @tailrec + final def loop(game: Game = this): Unit = { + if (game.winner.isEmpty) { + loop(game.takeTurn) + } else { + println(game.winnerMessage) + } + } + /** * Save the game state to a file to be loaded at a later date. * |