From ffa012ef6f87422cca0e1162d38e06d584789c04 Mon Sep 17 00:00:00 2001
From: EL GAOUAL Zaid <zaid.el-gaoual@etu.univ-amu.fr>
Date: Fri, 18 Nov 2022 17:55:56 +0100
Subject: [PATCH] Computer player hqs ended

---
 app/src/main/java/controller/GameController.java | 13 -------------
 app/src/main/java/model/CellGridIterator.java    |  2 +-
 app/src/main/java/model/ComputerPlayer.java      |  7 ++++++-
 app/src/main/java/model/FloodGame.java           |  4 ++--
 app/src/main/java/model/Flooder.java             |  1 -
 app/src/test/java/model/ArrayGridTest.java       |  4 ++--
 app/src/test/java/model/SquareCellTest.java      |  6 +++---
 7 files changed, 14 insertions(+), 23 deletions(-)

diff --git a/app/src/main/java/controller/GameController.java b/app/src/main/java/controller/GameController.java
index 744e81c..6f9b165 100644
--- a/app/src/main/java/controller/GameController.java
+++ b/app/src/main/java/controller/GameController.java
@@ -55,45 +55,37 @@ public class GameController {
 
 
     private void colorGrid(ColorGenerator colorGenerator){
-        // TODO
          matrixPane.getGrid().color(colorGenerator);
     }
 
 
     @FXML
     public void fillGridUniform() {
-        // TODO uncomment:
          colorGrid(new UniformColorGenerator(COLOR_ONE));
     }
 
     @FXML
     public void fillGridRandom() {
-        // TODO uncomment
           colorGrid(new RandomColorGenerator(availableColors,random));
     }
 
     @FXML
     public void fillGridDistinct() {
-        // TODO uncomment
           fillGridUniform();
           colorGrid(new DistinctColorGenerator(COLOR_ONE,List.of(COLOR_THREE, COLOR_FOUR)));
     }
 
     @FXML
     public void fillGridCycle() {
-        // TODO uncomment
           colorGrid(new CyclicColorGenerator(availableColors));
     }
 
     @FXML
     public void fillGridUniformExceptOne() {
-        // TODO uncomment
           colorGrid(new UniformExceptOneGenerator(COLOR_ONE,COLOR_TWO));
     }
 
     private void playComputerTurn(){
-        // TODO
-        //  uncomment
          if (!game.hasEnded() && !game.isHumanTurn()){
             ComputerPlayer player = ((ComputerPlayer) game.getPlayer());
             Flooder.flood(player.getStartCell(), player.play());
@@ -103,8 +95,6 @@ public class GameController {
     }
 
     public void playHumanTurn(Color color){
-        // TODO
-        //  uncomment
          if(!game.hasEnded() && game.isHumanTurn()){
              Flooder.flood(game.getPlayer().getStartCell(), color);
             setScoreLabelTextProperty();
@@ -121,8 +111,6 @@ public class GameController {
     }
 
     private void setScoreLabelTextProperty() {
-        // TODO
-        //  uncomment
          Player player = game.getPlayer();
          scoreLabel.textProperty().setValue(Integer.toString(game.getPlayerScore(player)));
     }
@@ -144,7 +132,6 @@ public class GameController {
 
     @FXML
     public void setPlayerHuman(){
-        // TODO
         game.setPlayer(new HumanPlayer("human", getGridStartCell()));
     }
 
diff --git a/app/src/main/java/model/CellGridIterator.java b/app/src/main/java/model/CellGridIterator.java
index 44c45df..a68056a 100644
--- a/app/src/main/java/model/CellGridIterator.java
+++ b/app/src/main/java/model/CellGridIterator.java
@@ -15,7 +15,7 @@ public class CellGridIterator implements Iterator<Cell> {
 
     @Override
     public boolean hasNext() {
-        if(this.row==grid.getNumberOfRows()-1 && this.column==grid.getNumberOfColumns()-1) {
+        if((this.row==grid.getNumberOfRows()-1 && this.column==grid.getNumberOfColumns()-1)) {
             return false;
         }
         return true;
diff --git a/app/src/main/java/model/ComputerPlayer.java b/app/src/main/java/model/ComputerPlayer.java
index 03b4bfa..71ba380 100644
--- a/app/src/main/java/model/ComputerPlayer.java
+++ b/app/src/main/java/model/ComputerPlayer.java
@@ -8,12 +8,17 @@ import java.util.List;
 public class ComputerPlayer implements Player{
     private    String name;
     private    Cell startCell;
-    private Color color;
     ComputerPlayer(String name, Cell startCell){
         this.name=name;
         this.startCell=startCell;
 
     }
+    ComputerPlayer(String name, Cell startCell,PlayStrategy strategy){
+        this.name=name;
+        this.startCell=startCell;
+        strategy.play(startCell);
+
+    }
 
 
     public void setColor(Color color){
diff --git a/app/src/main/java/model/FloodGame.java b/app/src/main/java/model/FloodGame.java
index fe154d3..c9eb4bb 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 (getPlayerScore(player) == totalFloodingArea) {
+        if (Flooder.coloredArea(player.getStartCell()) == totalFloodingArea-1) {
             return true;
         }
         return false;
     }
     public boolean hasEnded(){
-        return (hasWon(player)||getPlayerScore(player)==0);
+        return (hasWon(player)||getPlayerScore(player)==1);
     }
 
 }
diff --git a/app/src/main/java/model/Flooder.java b/app/src/main/java/model/Flooder.java
index b98fc38..831e391 100644
--- a/app/src/main/java/model/Flooder.java
+++ b/app/src/main/java/model/Flooder.java
@@ -8,7 +8,6 @@ public class Flooder {
 
     public static void flood(Cell startCell, Color floodingColor){
         Iterator<Cell> i = startCell.iterator();
-        startCell.setColor(floodingColor);
         while (i.hasNext()){
             i.next().setColor(floodingColor);
         }
diff --git a/app/src/test/java/model/ArrayGridTest.java b/app/src/test/java/model/ArrayGridTest.java
index 0a2cb0a..91d1b9f 100644
--- a/app/src/test/java/model/ArrayGridTest.java
+++ b/app/src/test/java/model/ArrayGridTest.java
@@ -78,8 +78,8 @@ class ArrayGridTest {
     void testIterator() {
         Iterator<Cell> iterator = arrayGridTwoTwo.iterator();
         assertThat(iterator.hasNext()).isTrue();
-        //assertThat(iterator.next()).isEqualTo(arrayGridTwoTwo.getCell(0,0));
-        //assertThat(iterator.hasNext()).isTrue();
+        assertThat(iterator.next()).isEqualTo(arrayGridTwoTwo.getCell(0,0));
+        assertThat(iterator.hasNext()).isTrue();
         assertThat(iterator.next()).isEqualTo(arrayGridTwoTwo.getCell(0,1));
         assertThat(iterator.hasNext()).isTrue();
         assertThat(iterator.next()).isEqualTo(arrayGridTwoTwo.getCell(1,0));
diff --git a/app/src/test/java/model/SquareCellTest.java b/app/src/test/java/model/SquareCellTest.java
index 6fb5613..3b6c211 100644
--- a/app/src/test/java/model/SquareCellTest.java
+++ b/app/src/test/java/model/SquareCellTest.java
@@ -27,9 +27,9 @@ class SquareCellTest {
         southCell.setNeighbours(List.of(centralCell));
         northCell.setNeighbours(List.of(centralCell));
     }
-//    @Test
-//    void testIterator() {
-//    }
+    @Test
+    void testIterator() {
+    }
 
     @Test
     void testGetNeighbours() {
-- 
GitLab