diff options
author | Robby Zambito <Zambito101@gmail.com> | 2019-11-23 22:29:12 -0500 |
---|---|---|
committer | Robby Zambito <Zambito101@gmail.com> | 2019-11-23 22:29:12 -0500 |
commit | 7371afad65843ec7e675504f0e5359b76ca8c0d6 (patch) | |
tree | a8169250991ab790f25418419617aec18ff2db49 | |
parent | eece346656a652e54829b7199973a278bee9a6e1 (diff) |
Moved game loop to game class rather than in the main function
-rw-r--r-- | src/main/scala/me/robbyzambito/othello/Main.scala | 13 | ||||
-rw-r--r-- | src/main/scala/me/robbyzambito/othello/game/Game.scala | 10 |
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. * |