summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/scala/me/robbyzambito/othello/Main.scala13
-rw-r--r--src/main/scala/me/robbyzambito/othello/game/Game.scala10
2 files changed, 11 insertions, 12 deletions
diff --git a/src/main/scala/me/robbyzambito/othello/Main.scala b/src/main/scala/me/robbyzambito/othello/Main.scala
index 6ee0103..506e84e 100644
--- a/src/main/scala/me/robbyzambito/othello/Main.scala
+++ b/src/main/scala/me/robbyzambito/othello/Main.scala
@@ -6,17 +6,6 @@ import scala.annotation.tailrec
object Main extends App {
- val game = Game()
-
- @tailrec
- def gameLoop(game: Game): Unit = {
- if (game.winner.isEmpty) {
- gameLoop(game.takeTurn)
- } else {
- println(game.winnerMessage)
- }
- }
-
- gameLoop(game)
+ Game().loop()
}
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.
*