diff --git a/src/Cardinal.java b/src/Cardinal.java index 92696f7..ab787dd 100644 --- a/src/Cardinal.java +++ b/src/Cardinal.java @@ -83,4 +83,7 @@ public enum Cardinal { public Cardinal rotate90CCW() { return rotate(-2); } + + // North, South, East, West cardinals array + public static final Cardinal[] NS_EW = {N, S, E, W}; } diff --git a/src/ConsoleRenderer.java b/src/ConsoleRenderer.java index f9a613f..1231b4b 100644 --- a/src/ConsoleRenderer.java +++ b/src/ConsoleRenderer.java @@ -49,7 +49,7 @@ public class ConsoleRenderer extends GomokuRenderer { System.out.println(horizontalLine); } System.out.print("x"); - for (int i = 0; i < height; i++) { + for (int i = 0; i < width; i++) { if(i<10) { System.out.print(" "+i+" "); } else { diff --git a/src/GomokuGame.java b/src/GomokuGame.java index 636f875..c4565e7 100644 --- a/src/GomokuGame.java +++ b/src/GomokuGame.java @@ -147,6 +147,14 @@ public class GomokuGame { while (currentPlay == null) { currentPlay = this.play(this.currentPlayer); } + // Expand the board if one of the neighbours of the cell is null + // Only check for North, South, East and West neighbours + for (Cardinal cardinal : Cardinal.NS_EW) { + GomokuCell neighbour = currentPlay.getNeighbour(cardinal); + if (neighbour == null) { + this.board.expandBoard(cardinal); + } + } System.out.println(board.countMax(board.countAlignedCells(currentPlay))); if (NB_CELL_PLAY <= board.countMax(board.countAlignedCells(currentPlay))) { System.out.println("Le joueur " + this.currentPlayer + " a gagné !");