Skip to content

Commit 79bcce3

Browse files
author
sam
committed
Upgrade libs
1 parent 22a9a77 commit 79bcce3

File tree

4 files changed

+17
-20
lines changed

4 files changed

+17
-20
lines changed

build.sbt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name := "Connect4"
33

44
version := "0.1"
55

6-
scalaVersion := "2.12.8"
6+
scalaVersion := "2.13.9"
77

8-
libraryDependencies += "org.typelevel" %% "cats-effect" % "1.3.1"
9-
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.0" % Test
8+
libraryDependencies += "org.typelevel" %% "cats-effect" % "3.3.12"
9+
libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.14" % Test

project/build.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
sbt.version = 1.2.8
1+
sbt.version = 1.5.5

src/main/scala/connect4/GameRunner.scala

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ import cats.syntax.all._
66
import scala.io.StdIn
77
import scala.util.matching.Regex
88

9-
object GameRunner extends IOApp {
9+
object GameRunner extends IOApp.Simple {
1010

11-
val p1 = Player('X', "Player1")
12-
val p2 = Player('O', "Player2")
13-
val selectColumn: Regex = "([1-7])".r
11+
private val p1 = Player('X', "Player1")
12+
private val p2 = Player('O', "Player2")
13+
private val selectColumn: Regex = "([1-7])".r
1414

1515
def dropCoin(b: Board, currentPlayer: Player, column: String): Either[String, Board] = column match {
1616
case selectColumn(c) => b.play(currentPlayer, c.toInt)
@@ -19,22 +19,19 @@ object GameRunner extends IOApp {
1919

2020
def swapPlayer(p: Player): Player = if (p == p1) p2 else p1
2121

22-
def eval(command: String, board: Board, p: Player): IO[ExitCode] = IO.suspend {
22+
def eval(command: String, board: Board, p: Player): IO[Unit] =
2323
if (command == null) IO.pure(ExitCode.Success) else dropCoin(board, p, command) match {
2424
case Left(err) => IO(println(s"Err: $err")) *> loop(board, p)
2525
case Right(b) if b.gameState == Playing => IO(println(b.draw())) *> loop(b, swapPlayer(p))
26-
case Right(b) => IO(println(s"Game finished as ${b.gameState} : \n${b.draw()}")) *> IO.pure(ExitCode.Success)
26+
case Right(b) => IO(println(s"Game finished as ${b.gameState} : \n${b.draw()}")) *> IO.unit
2727
}
28-
}
2928

30-
def loop(board: Board, p: Player): IO[ExitCode] = IO.suspend {
29+
def loop(board: Board, p: Player): IO[Unit] =
3130
for {
3231
_ <- IO(print(s"> Choose a column ${p.name}: "))
3332
line <- IO(StdIn.readLine)
34-
exitCode <- eval(line, board, p)
35-
} yield exitCode
36-
}
33+
_ <- eval(line, board, p)
34+
} yield ()
3735

38-
def run(args: List[String]): IO[ExitCode] = loop(new Board(), p1)
39-
.guaranteeCase(_ => IO(println("Bye!")))
36+
def run: IO[Unit] = loop(new Board(), p1)
4037
}

src/test/scala/connect4/unit/BoardSpec.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package connect4.unit
22

33
import connect4.{Board, Player}
4-
import org.scalatest.FunSpec
5-
import org.scalatest.Matchers._
4+
import org.scalatest.matchers.should.Matchers._
5+
import org.scalatest.funspec.AnyFunSpec
66

7-
class BoardSpec extends FunSpec {
7+
class BoardSpec extends AnyFunSpec {
88

99
it("draws an empty board") {
1010
new Board().draw() shouldBe

0 commit comments

Comments
 (0)