summaryrefslogtreecommitdiff
path: root/src/main/scala/me/robbyzambito/othello/game/Game.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/me/robbyzambito/othello/game/Game.scala')
-rw-r--r--src/main/scala/me/robbyzambito/othello/game/Game.scala10
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.
*