diff --git a/app/src/main/java/controller/GameController.java b/app/src/main/java/controller/GameController.java index 6f9b1656942e7bbce990486299fc9cdf07b39c86..4c8d0e735b8ac2109d62443398b9d80caf88570c 100644 --- a/app/src/main/java/controller/GameController.java +++ b/app/src/main/java/controller/GameController.java @@ -138,8 +138,8 @@ public class GameController { @FXML public void setPlayerRandom() { // TODO - // Player player = ... instantiate a ComputerPlayer named "random" that follows the random strategy - // game.setPlayer(player); +// Player player = ... instantiate a ComputerPlayer named "random" that follows the random strategy +// game.setPlayer(player); } @FXML public void setPlayerRobin() { diff --git a/app/src/main/java/model/CellGridIterator.java b/app/src/main/java/model/CellGridIterator.java index a68056add9934fd6c12b434b22757cb9623cffa4..12b9f15d1886ae64f51df9e57b71b48ae6ef22dc 100644 --- a/app/src/main/java/model/CellGridIterator.java +++ b/app/src/main/java/model/CellGridIterator.java @@ -3,38 +3,77 @@ package model; import java.util.Iterator; public class CellGridIterator implements Iterator<Cell> { - public ArrayGrid grid; - public int row; - public int column; - - CellGridIterator(ArrayGrid grid) { - this.grid=grid; - this.row=0; - this.column=0; + + + private ArrayGrid grid; + private int PrvColmn; + private int PrvRow; + private int ActColmn; + private int ActRow; + + + CellGridIterator(ArrayGrid grid){ + + PrvRow=ActRow=0; + PrvColmn=ActColmn=0; + this.grid=grid; + + + } - @Override - public boolean hasNext() { - if((this.row==grid.getNumberOfRows()-1 && this.column==grid.getNumberOfColumns()-1)) { - return false; - } - return true; + + + + + + public + boolean hasNext ( ) { + return hasNextRow ()|| hasNextCol (); + } + + public + Boolean hasNextCol (){ + + + return !(grid.getNumberOfColumns ()==ActColmn); + } - @Override - public Cell next() { - if (hasNext()) { - if (this.column >= 0 && this.column < grid.getNumberOfColumns()-1) { - this.column++; - } else if (this.column == grid.getNumberOfColumns()-1 && this.row < grid.getNumberOfRows()-1) { - this.column = 0; - this.row++; - } - - return grid.getCell(row, column); + public Boolean hasNextRow(){ + + + return !(grid.getNumberOfRows ()-1==this.ActRow); + + } + + + public Cell next ( ) { + + if ( hasNextCol ( ) ) { + PrvColmn=ActColmn; + ActColmn++; + return grid.getCell (PrvRow,PrvColmn ); + + + } + if ( hasNextRow ( ) ) { + ActRow++; + + ActColmn=1; + PrvColmn=0; + + + PrvRow=ActRow; + + return grid.getCell ( PrvRow , PrvColmn ); + + } return null; + } + } diff --git a/app/src/main/java/model/ComputerPlayer.java b/app/src/main/java/model/ComputerPlayer.java index 71ba3804c464f0c8ad3ea74fe80aca497c8b9573..44226c099133ee376d4dcaaad86bb047306aafba 100644 --- a/app/src/main/java/model/ComputerPlayer.java +++ b/app/src/main/java/model/ComputerPlayer.java @@ -8,6 +8,7 @@ import java.util.List; public class ComputerPlayer implements Player{ private String name; private Cell startCell; + private PlayStrategy strategy; ComputerPlayer(String name, Cell startCell){ this.name=name; this.startCell=startCell; @@ -16,8 +17,7 @@ public class ComputerPlayer implements Player{ ComputerPlayer(String name, Cell startCell,PlayStrategy strategy){ this.name=name; this.startCell=startCell; - strategy.play(startCell); - + this.strategy=strategy; } diff --git a/app/src/main/java/model/FloodGame.java b/app/src/main/java/model/FloodGame.java index c9eb4bb25a1f66563bf7d6db19fe71e468652c75..5190aed02ab9eb6ed5715b6da67cddd823d33db1 100644 --- a/app/src/main/java/model/FloodGame.java +++ b/app/src/main/java/model/FloodGame.java @@ -56,13 +56,13 @@ public class FloodGame { } public boolean hasWon(Player player) { - if (Flooder.coloredArea(player.getStartCell()) == totalFloodingArea-1) { + if (Flooder.coloredArea(player.getStartCell()) == totalFloodingArea) { return true; } return false; } public boolean hasEnded(){ - return (hasWon(player)||getPlayerScore(player)==1); + return (hasWon(player)||getPlayerScore(player)==0); } }