From aa7dfd3dd691bfe9591b7751525e8198fbb15233 Mon Sep 17 00:00:00 2001 From: Ric Emery Date: Thu, 15 Dec 2016 10:32:07 -0700 Subject: [PATCH] Queens - use object instead of an instance - refs #242. Add Queens.scala - refs #137. Add topics to config.json - refs #125 --- config.json | 4 ++++ exercises/queen-attack/example.scala | 3 ++- .../queen-attack/src/main/scala/Queens.scala | 8 ++++++++ .../src/test/scala/QueensTest.scala | 18 +++++++++--------- 4 files changed, 23 insertions(+), 10 deletions(-) create mode 100644 exercises/queen-attack/src/main/scala/Queens.scala diff --git a/config.json b/config.json index 08addedd..6614d958 100644 --- a/config.json +++ b/config.json @@ -221,6 +221,10 @@ "slug": "queen-attack", "difficulty": 1, "topics": [ + "Strings", + "Optional values", + "Logic", + "Games" ] }, { diff --git a/exercises/queen-attack/example.scala b/exercises/queen-attack/example.scala index 052d456f..2bb4579b 100644 --- a/exercises/queen-attack/example.scala +++ b/exercises/queen-attack/example.scala @@ -1,4 +1,4 @@ -case class Queens() { +object Queens { def boardString(white: Option[Position], black: Option[Position]): String = { @@ -34,3 +34,4 @@ case class Queens() { } case class Position(x: Int, y: Int) + diff --git a/exercises/queen-attack/src/main/scala/Queens.scala b/exercises/queen-attack/src/main/scala/Queens.scala new file mode 100644 index 00000000..9bddfd88 --- /dev/null +++ b/exercises/queen-attack/src/main/scala/Queens.scala @@ -0,0 +1,8 @@ +object Queens { + + def boardString(white: Option[Position], black: Option[Position]): String = ??? + + def canAttack(white: Position, black: Position): Boolean = ??? +} + +case class Position(x: Int, y: Int) diff --git a/exercises/queen-attack/src/test/scala/QueensTest.scala b/exercises/queen-attack/src/test/scala/QueensTest.scala index f53d1e7f..15770945 100644 --- a/exercises/queen-attack/src/test/scala/QueensTest.scala +++ b/exercises/queen-attack/src/test/scala/QueensTest.scala @@ -2,7 +2,7 @@ import org.scalatest.{Matchers, FunSuite} class QueensTest extends FunSuite with Matchers { test ("empty boardString") { - Queens().boardString(None, None) should equal( + Queens.boardString(None, None) should equal( "_ _ _ _ _ _ _ _\n" + "_ _ _ _ _ _ _ _\n" + "_ _ _ _ _ _ _ _\n" + @@ -15,7 +15,7 @@ class QueensTest extends FunSuite with Matchers { test("boardString") { pending - Queens().boardString(Some(Position(2, 4)), Some(Position(6, 6))) should equal( + Queens.boardString(Some(Position(2, 4)), Some(Position(6, 6))) should equal( "_ _ _ _ _ _ _ _\n" + "_ _ _ _ _ _ _ _\n" + "_ _ _ _ W _ _ _\n" + @@ -28,24 +28,24 @@ class QueensTest extends FunSuite with Matchers { test("canAttack - false") { pending - Queens().canAttack(Position(2, 3), Position(4, 7)) should be (false) + Queens.canAttack(Position(2, 3), Position(4, 7)) should be (false) } test("canAttack - vert attack") { pending - Queens().canAttack(Position(2, 4), Position(2, 7)) should be (true) + Queens.canAttack(Position(2, 4), Position(2, 7)) should be (true) } test("canAttack - horiz attack") { pending - Queens().canAttack(Position(5, 4), Position(2, 4)) should be (true) + Queens.canAttack(Position(5, 4), Position(2, 4)) should be (true) } test("canAttack - diag attack") { pending - Queens().canAttack(Position(1, 1), Position(6, 6)) should be (true) - Queens().canAttack(Position(0, 6), Position(1, 7)) should be (true) - Queens().canAttack(Position(4, 1), Position(6, 3)) should be (true) - Queens().canAttack(Position(2, 2), Position(1, 3)) should be (true) + Queens.canAttack(Position(1, 1), Position(6, 6)) should be (true) + Queens.canAttack(Position(0, 6), Position(1, 7)) should be (true) + Queens.canAttack(Position(4, 1), Position(6, 3)) should be (true) + Queens.canAttack(Position(2, 2), Position(1, 3)) should be (true) } }