From 26c5ffb94b6bd8bdd36f4e873543d466f6a54cc2 Mon Sep 17 00:00:00 2001
From: EL GAOUAL Zaid <zaid.el-gaoual@etu.univ-amu.fr>
Date: Fri, 18 Nov 2022 21:01:14 +0100
Subject: [PATCH] Strategy walk

---
 .../main/java/controller/GameController.java  |  4 +-
 app/src/main/java/model/CellGridIterator.java | 89 +++++++++++++------
 app/src/main/java/model/ComputerPlayer.java   |  4 +-
 app/src/main/java/model/FloodGame.java        |  4 +-
 4 files changed, 70 insertions(+), 31 deletions(-)

diff --git a/app/src/main/java/controller/GameController.java b/app/src/main/java/controller/GameController.java
index 6f9b165..4c8d0e7 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 a68056a..12b9f15 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 71ba380..44226c0 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 c9eb4bb..5190aed 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);
     }
 
 }
-- 
GitLab