diff --git a/src/main/java/net/skytreader/kode/chesstemplar/Board.java b/src/main/java/net/skytreader/kode/chesstemplar/Board.java index 7aeef37..3674c2d 100644 --- a/src/main/java/net/skytreader/kode/chesstemplar/Board.java +++ b/src/main/java/net/skytreader/kode/chesstemplar/Board.java @@ -2,6 +2,8 @@ import java.awt.Point; +import java.util.Set; + import net.skytreader.kode.chesstemplar.pieces.ChessPiece; /** @@ -30,6 +32,11 @@ public interface Board{ null if it is not. */ public ChessPiece getPieceAt(int r, int c); + + /** + Get a list of positions where there are pieces on the board. + */ + public Set getPiecePositions(); /** Move the piece at the location (r1, c1) to location (r2, c2). diff --git a/src/main/java/net/skytreader/kode/chesstemplar/GridBoard.java b/src/main/java/net/skytreader/kode/chesstemplar/GridBoard.java index 57ec8d6..fb4b3e3 100644 --- a/src/main/java/net/skytreader/kode/chesstemplar/GridBoard.java +++ b/src/main/java/net/skytreader/kode/chesstemplar/GridBoard.java @@ -2,6 +2,9 @@ import java.awt.Point; +import java.util.HashSet; +import java.util.Set; + import net.skytreader.kode.chesstemplar.pieces.Bishop; import net.skytreader.kode.chesstemplar.pieces.ChessPiece; import net.skytreader.kode.chesstemplar.pieces.King; @@ -176,6 +179,11 @@ public ChessPiece getPieceAt(int r, int c){ } } + @Override + public Set getPiecePositions(){ + return null; + } + @Override public void move(int r1, int c1, int r2, int c2){ lastSrc = new Point(r1, c1); diff --git a/src/test/java/net/skytreader/kode/chesstemplar/GridBoardTest.java b/src/test/java/net/skytreader/kode/chesstemplar/GridBoardTest.java index a68e5ed..576765f 100644 --- a/src/test/java/net/skytreader/kode/chesstemplar/GridBoardTest.java +++ b/src/test/java/net/skytreader/kode/chesstemplar/GridBoardTest.java @@ -3,6 +3,8 @@ import java.awt.Point; import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; import net.skytreader.kode.chesstemplar.pieces.Bishop; import net.skytreader.kode.chesstemplar.pieces.ChessPiece; @@ -101,6 +103,21 @@ public void testRemovePiece(){ testBoard.removePiece(0, 0); Assert.assertNull(testBoard.getPieceAt(0, 0)); } + + @Test + public void testGetPiecePositions(){ + Board testBoard = new GridBoard(); + HashSet initialConfig = new HashSet(); + + for(int i = 0; i < 8; i++){ + initialConfig.add(new Point(0, i)); + initialConfig.add(new Point(1, i)); + initialConfig.add(new Point(6, i)); + initialConfig.add(new Point(7, i)); + } + + Assert.assertEquals(initialConfig, testBoard.getPiecePositions()); + } /** We just want to know that the toString() method returns an 8x8 grid.