summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobby Zambito <Zambito101@gmail.com>2019-11-23 22:29:12 -0500
committerRobby Zambito <Zambito101@gmail.com>2019-11-23 22:29:12 -0500
commit7371afad65843ec7e675504f0e5359b76ca8c0d6 (patch)
treea8169250991ab790f25418419617aec18ff2db49
parenteece346656a652e54829b7199973a278bee9a6e1 (diff)
Moved game loop to game class rather than in the main function
-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.
*