From 2874365068b3e7c96e2d310783a676031c7637ce Mon Sep 17 00:00:00 2001
From: Anthony Viola <anthony.viola34@gmail.com>
Date: Sun, 26 Nov 2023 02:15:34 +0100
Subject: [PATCH] Firefighter build fini + StonePaperScissors build fini

---
 src/main/java/app/SimulatorApplication.java   |  37 ++--
 src/main/java/controller/Controller.java      |  13 +-
 src/main/java/model/Board.java                |   8 +-
 src/main/java/model/Box.java                  |   3 +-
 src/main/java/model/Cloud.java                |   2 +-
 src/main/java/model/Extinguisher.java         |   9 +-
 src/main/java/model/Fire.java                 |   8 +-
 src/main/java/model/Firefighter.java          |   2 +-
 src/main/java/model/FirefighterBoard.java     |  20 +++
 src/main/java/model/Item.java                 |   5 +-
 src/main/java/model/MotorFirefighter.java     |   2 +-
 src/main/java/model/Mountain.java             |   4 +-
 src/main/java/model/Paper.java                |  26 +++
 src/main/java/model/Road.java                 |   6 +-
 src/main/java/model/Rockeries.java            |   4 +-
 src/main/java/model/Scissors.java             |  24 +++
 src/main/java/model/ShifumiElement.java       |  92 ++++++++++
 src/main/java/model/Stone.java                |  26 +++
 .../java/model/StonePaperScissorsBoard.java   | 165 ++++++++++++++++++
 src/main/java/view/FirefighterGrid.java       |   4 +
 src/main/java/view/Grid.java                  |  11 +-
 .../java/view/StonePaperScissorsGrid.java     | 109 ++++++++++++
 src/main/resources/pictures/Paper.png         | Bin 0 -> 20917 bytes
 src/main/resources/pictures/Scissors.png      | Bin 0 -> 17655 bytes
 src/main/resources/pictures/Stone.png         | Bin 0 -> 16929 bytes
 .../view/{view.fxml => Firefighterview.fxml}  |   0
 .../view/StonePaperScissorsView.fxml          |  40 +++++
 27 files changed, 582 insertions(+), 38 deletions(-)
 create mode 100644 src/main/java/model/Paper.java
 create mode 100644 src/main/java/model/Scissors.java
 create mode 100644 src/main/java/model/ShifumiElement.java
 create mode 100644 src/main/java/model/Stone.java
 create mode 100644 src/main/java/model/StonePaperScissorsBoard.java
 create mode 100644 src/main/java/view/StonePaperScissorsGrid.java
 create mode 100644 src/main/resources/pictures/Paper.png
 create mode 100644 src/main/resources/pictures/Scissors.png
 create mode 100644 src/main/resources/pictures/Stone.png
 rename src/main/resources/view/{view.fxml => Firefighterview.fxml} (100%)
 create mode 100644 src/main/resources/view/StonePaperScissorsView.fxml

diff --git a/src/main/java/app/SimulatorApplication.java b/src/main/java/app/SimulatorApplication.java
index ac7e53c..25eeaaf 100644
--- a/src/main/java/app/SimulatorApplication.java
+++ b/src/main/java/app/SimulatorApplication.java
@@ -11,25 +11,28 @@ import java.io.IOException;
 import java.net.URL;
 
 public class SimulatorApplication extends javafx.application.Application {
-  private static final String VIEW_RESOURCE_PATH = "/view/view.fxml";
-  private static final String APP_NAME = "Firefighter simulator";
+  private static final String FIREFIGHTER_VIEW_RESOURCE_PATH = "/view/Firefighterview.fxml";
+  private static final String STONEPAPERSCISSORS_VIEW_RESOURCE_PATH = "/view/StonePaperScissorsview.fxml";
   private static final int ROW_COUNT = 20;
   private static final int COLUMN_COUNT = 20;
   private static final int SQUARE_WIDTH = 50;
   private static final int SQUARE_HEIGHT = 50;
   public static final int INITIAL_FIRE_COUNT = 2;
-  public static final int INITIAL_FIREFIGHTER_COUNT = 3;
-  public static final int INITIAL_MOTORFIREFIGHTER_COUNT = 1;
-  public static final int INITIAL_CLOUD_COUNT = 2;
+  public static final int INITIAL_FIREFIGHTER_COUNT = 5;
+  public static final int INITIAL_MOTORFIREFIGHTER_COUNT = 2;
+  public static final int INITIAL_CLOUD_COUNT = 3;
   public static final int INITIAL_MOUNTAIN_COUNT = 10;
   public static final int INITIAL_ROAD_COUNT = 10;
   public static final int INITIAL_ROCKERIES_COUNT = 10;
+  public static final int INITIAL_STONE_COUNT = 5;
+  public static final int INITIAL_PAPER_COUNT = 5;
+  public static final int INITIAL_SCISSORS_COUNT = 5;
 
   private Stage primaryStage;
   private Parent view;
-  private void initializePrimaryStage(Stage primaryStage) {
+  private void initializePrimaryStage(Stage primaryStage, String appName) {
     this.primaryStage = primaryStage;
-    this.primaryStage.setTitle(APP_NAME);
+    this.primaryStage.setTitle(appName);
     this.primaryStage.setOnCloseRequest(event -> Platform.exit());
     this.primaryStage.setResizable(false);
     this.primaryStage.sizeToScene();
@@ -37,14 +40,15 @@ public class SimulatorApplication extends javafx.application.Application {
 
   @Override
   public void start(Stage primaryStage) throws IOException {
-    initializePrimaryStage(primaryStage);
-    initializeView();
+    initializeFirefighterView(primaryStage);
+    //initializeStonePaperScissorsView(primaryStage);
     showScene();
   }
 
-  private void initializeView() throws IOException {
+  private void initializeFirefighterView(Stage primaryStage) throws IOException {
+    initializePrimaryStage(primaryStage, "Firefighter simulator");
     FXMLLoader loader = new FXMLLoader();
-    URL location = SimulatorApplication.class.getResource(VIEW_RESOURCE_PATH);
+    URL location = SimulatorApplication.class.getResource(FIREFIGHTER_VIEW_RESOURCE_PATH);
     loader.setLocation(location);
     view = loader.load();
     Controller controller = loader.getController();
@@ -53,6 +57,17 @@ public class SimulatorApplication extends javafx.application.Application {
             INITIAL_MOUNTAIN_COUNT, INITIAL_ROAD_COUNT, INITIAL_ROCKERIES_COUNT);
   }
 
+  private void initializeStonePaperScissorsView(Stage primaryStage) throws IOException {
+    initializePrimaryStage(primaryStage, "Stone,Paper,Scissors simulator");
+    FXMLLoader loader = new FXMLLoader();
+    URL location = SimulatorApplication.class.getResource(STONEPAPERSCISSORS_VIEW_RESOURCE_PATH);
+    loader.setLocation(location);
+    view = loader.load();
+    Controller controller = loader.getController();
+    controller.initialize(SQUARE_WIDTH, SQUARE_HEIGHT, COLUMN_COUNT, ROW_COUNT,
+            INITIAL_STONE_COUNT, INITIAL_PAPER_COUNT, INITIAL_SCISSORS_COUNT);
+  }
+
   private void showScene() {
     Scene scene = new Scene(view);
     primaryStage.setScene(scene);
diff --git a/src/main/java/controller/Controller.java b/src/main/java/controller/Controller.java
index 57c0965..9712cf1 100644
--- a/src/main/java/controller/Controller.java
+++ b/src/main/java/controller/Controller.java
@@ -14,6 +14,7 @@ import javafx.util.Duration;
 import model.Board;
 import model.Item;
 import model.FirefighterBoard;
+import model.StonePaperScissorsBoard;
 import util.Position;
 import view.Grid;
 
@@ -52,8 +53,8 @@ public class Controller {
     pauseToggleButton.setSelected(true);
   }
 
-  private void setBoard(FirefighterBoard firefighterBoard) {
-    this.board = requireNonNull(firefighterBoard, "firefighter.model is null");
+  private void setBoard(Board board) {
+    this.board = requireNonNull(board, "board is null");
   }
 
   private void updateBoard(){
@@ -119,6 +120,14 @@ public class Controller {
     repaintGrid();
   }
 
+  public void initialize(int squareWidth, int squareHeight, int columnCount,
+                         int rowCount, int initialStoneCount, int initialPaperCount, int initialScissorsCount) {
+
+    this.setBoard(new StonePaperScissorsBoard(columnCount, rowCount, initialStoneCount, initialPaperCount, initialScissorsCount));
+    grid.setDimensions(columnCount, rowCount, squareWidth, squareHeight);
+    repaintGrid();
+  }
+
   public void oneStepButtonAction() {
     this.pause();
     updateBoard();
diff --git a/src/main/java/model/Board.java b/src/main/java/model/Board.java
index 4edcc16..3603dcd 100644
--- a/src/main/java/model/Board.java
+++ b/src/main/java/model/Board.java
@@ -7,7 +7,7 @@ import java.util.List;
 /**
  * This interface represents a generic board for modeling various state-based systems.
  *
- * @param <S> The type of state represented on the board.
+ *
  */
 public interface Board {
 
@@ -59,5 +59,11 @@ public interface Board {
   Item getItemByPosition(Position position);
   Box getBoxByPosition(Position position);
   void testScreen();
+
+  List<Position> neighbors(Position position);
+
+  List<Position> emptyNeighbors(Position position);
+
+  Position opposite(Position opposite, Position center);
 }
 
diff --git a/src/main/java/model/Box.java b/src/main/java/model/Box.java
index bbd1a23..ea40ae1 100644
--- a/src/main/java/model/Box.java
+++ b/src/main/java/model/Box.java
@@ -2,10 +2,11 @@ package model;
 
 import util.Position;
 import view.FirefighterGrid;
+import view.Grid;
 
 public interface Box {
 
     Position position();
 
-    void paint(FirefighterGrid grid);
+    void paint(Grid grid);
 }
diff --git a/src/main/java/model/Cloud.java b/src/main/java/model/Cloud.java
index 40adb4a..60f6e22 100644
--- a/src/main/java/model/Cloud.java
+++ b/src/main/java/model/Cloud.java
@@ -14,7 +14,7 @@ public class Cloud extends Extinguisher implements Item {
     }
 
 
-    List<Position> move(FirefighterBoard board) {
+    List<Position> move(Board board) {
         List<Position> result = new ArrayList<>();
         List<Position> finalNeighborsList = new ArrayList<>();
         List<Position> neighborsList = board.neighbors(position);
diff --git a/src/main/java/model/Extinguisher.java b/src/main/java/model/Extinguisher.java
index af8c779..d748e40 100644
--- a/src/main/java/model/Extinguisher.java
+++ b/src/main/java/model/Extinguisher.java
@@ -3,6 +3,7 @@ package model;
 import javafx.scene.paint.Color;
 import util.Position;
 import view.FirefighterGrid;
+import view.Grid;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -21,14 +22,14 @@ public abstract class Extinguisher {
     }
 
 
-    public List<Position> update(FirefighterBoard board){
+    public List<Position> update(Board board){
         ArrayList<Position> result = new ArrayList<Position>();
         result.addAll(move(board));
         result.addAll(extinguish(board));
         return result;
     }
 
-    private List<Position> extinguish(FirefighterBoard board) {
+    private List<Position> extinguish(Board board) {
         List<Position> result = new ArrayList<>();
         List<Item> itemList = board.itemList();
         List<Position> neighborsList = board.neighbors(position);
@@ -44,9 +45,9 @@ public abstract class Extinguisher {
         return result;
     }
 
-    abstract List<Position> move(FirefighterBoard board);
+    abstract List<Position> move(Board board);
 
-    public void paint(FirefighterGrid grid){
+    public void paint(Grid grid){
         grid.paintCircle(position.row(), position.column(), color);
     }
 
diff --git a/src/main/java/model/Fire.java b/src/main/java/model/Fire.java
index 2a63ed1..be758d2 100644
--- a/src/main/java/model/Fire.java
+++ b/src/main/java/model/Fire.java
@@ -1,10 +1,8 @@
 package model;
 
-import javafx.scene.layout.HBox;
 import javafx.scene.paint.Color;
 import util.Position;
-import view.FirefighterGrid;
-
+import view.Grid;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -18,7 +16,7 @@ public class Fire implements Item{
         this.position = position;
     }
 
-    public List<Position> update(FirefighterBoard board) {
+    public List<Position> update(Board board) {
         ArrayList<Position> result = new ArrayList<Position>();
         List<Position> neighborslist = board.neighbors(position);
         Box box = board.getBoxByPosition(position);;
@@ -51,7 +49,7 @@ public class Fire implements Item{
         return position;
     }
 
-    public void paint(FirefighterGrid grid){
+    public void paint(Grid grid){
         grid.paintTriangle(position.row(), position.column(), color);
     }
 
diff --git a/src/main/java/model/Firefighter.java b/src/main/java/model/Firefighter.java
index 5659d20..96dc7db 100644
--- a/src/main/java/model/Firefighter.java
+++ b/src/main/java/model/Firefighter.java
@@ -12,7 +12,7 @@ public class Firefighter extends Extinguisher implements Item{
         this.color = Color.BLUE;
     }
 
-    public List<Position> move(FirefighterBoard board) {
+    public List<Position> move(Board board) {
         List<Position> result = new ArrayList<>();
         Set<Position> seen = new HashSet<>();
         HashMap<Position, Position> firstMove = new HashMap<>();
diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/FirefighterBoard.java
index bc5745b..ab836ad 100644
--- a/src/main/java/model/FirefighterBoard.java
+++ b/src/main/java/model/FirefighterBoard.java
@@ -144,6 +144,26 @@ public class FirefighterBoard implements Board {
     return list;
   }
 
+  @Override
+  public List<Position> emptyNeighbors(Position position) {
+    return null;
+  }
+
+  public Position opposite(Position opposite, Position center) {
+    if (opposite.column() == center.column() || opposite.row() == center.row()){
+      if (opposite.column() == (center.column()+1)) {
+        return new Position(center.row(), center.column()-1);
+      } else if (opposite.column() == (center.column()-1)) {
+        return new Position(center.row(), center.column()-1);
+      } else if (opposite.row() == (center.row()+1)) {
+        return new Position(center.row()-1, center.column());
+      } else if (opposite.row() == (center.row()-1)) {
+        return new Position(center.row()+1, center.column());
+      }
+    }
+    return null;
+  }
+
   public void testScreen(){
     Position position;
 
diff --git a/src/main/java/model/Item.java b/src/main/java/model/Item.java
index f4c82a3..e79b7b3 100644
--- a/src/main/java/model/Item.java
+++ b/src/main/java/model/Item.java
@@ -2,17 +2,18 @@ package model;
 
 import util.Position;
 import view.FirefighterGrid;
+import view.Grid;
 
 import java.util.ArrayList;
 import java.util.List;
 
 public interface Item {
 
-    List<Position> update(FirefighterBoard board);
+    List<Position> update(Board board);
 
     Position position();
 
-    void paint(FirefighterGrid grid);
+    void paint(Grid grid);
 
     String toString();
 }
diff --git a/src/main/java/model/MotorFirefighter.java b/src/main/java/model/MotorFirefighter.java
index 7e59abd..9100a55 100644
--- a/src/main/java/model/MotorFirefighter.java
+++ b/src/main/java/model/MotorFirefighter.java
@@ -12,7 +12,7 @@ public class MotorFirefighter extends Extinguisher implements Item{
         this.color = Color.PURPLE;
     }
 
-    public List<Position> move(FirefighterBoard board) {
+    public List<Position> move(Board board) {
         List<Position> result = new ArrayList<>();
         Set<Position> seen = new HashSet<>();
         HashMap<Position, Position> firstMove = new HashMap<>();
diff --git a/src/main/java/model/Mountain.java b/src/main/java/model/Mountain.java
index 837ac03..0a28d0f 100644
--- a/src/main/java/model/Mountain.java
+++ b/src/main/java/model/Mountain.java
@@ -2,7 +2,7 @@ package model;
 
 import javafx.scene.paint.Color;
 import util.Position;
-import view.FirefighterGrid;
+import view.Grid;
 
 public class Mountain implements Box{
     private final Position position;
@@ -18,7 +18,7 @@ public class Mountain implements Box{
         return position;
     }
 
-    public void paint(FirefighterGrid grid){
+    public void paint(Grid grid){
         grid.paintSquare(position.row(), position.column(), color);
     }
     public String toString(){
diff --git a/src/main/java/model/Paper.java b/src/main/java/model/Paper.java
new file mode 100644
index 0000000..06aa9bf
--- /dev/null
+++ b/src/main/java/model/Paper.java
@@ -0,0 +1,26 @@
+package model;
+
+import util.Position;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Paper extends ShifumiElement implements Item{
+    public Paper(Position position) {
+        super(position);
+        iconName = "Paper";
+    }
+
+    public List<Position> reaction(Board board, Item item, Position potentialMove){
+        if (item instanceof Stone){
+            return tryKillAndMove(board, potentialMove);
+        } else if (item instanceof Scissors) {
+            return escape(board, potentialMove);
+        }
+        return new ArrayList<>();
+    }
+
+    public String toString(){
+        return "Paper position : [" + position.row() + ", " + position.column()+ "]";
+    }
+}
diff --git a/src/main/java/model/Road.java b/src/main/java/model/Road.java
index defe96f..3c658df 100644
--- a/src/main/java/model/Road.java
+++ b/src/main/java/model/Road.java
@@ -2,10 +2,10 @@ package model;
 
 import javafx.scene.paint.Color;
 import util.Position;
-import view.FirefighterGrid;
+import view.Grid;
 
 public class Road implements Box{
-    private Position position;
+    private final Position position;
     private final Color color = Color.BLACK;
 
     public Road(Position position){
@@ -15,7 +15,7 @@ public class Road implements Box{
         return position;
     }
 
-    public void paint(FirefighterGrid grid){
+    public void paint(Grid grid){
         grid.paintSquare(position.row(), position.column(), color);
     }
 
diff --git a/src/main/java/model/Rockeries.java b/src/main/java/model/Rockeries.java
index 2bf156a..d0f5952 100644
--- a/src/main/java/model/Rockeries.java
+++ b/src/main/java/model/Rockeries.java
@@ -2,7 +2,7 @@ package model;
 
 import javafx.scene.paint.Color;
 import util.Position;
-import view.FirefighterGrid;
+import view.Grid;
 
 public class Rockeries implements Box{
     private final Position position;
@@ -17,7 +17,7 @@ public class Rockeries implements Box{
         return position;
     }
 
-    public void paint(FirefighterGrid grid){
+    public void paint(Grid grid){
         grid.paintSquare(position.row(), position.column(), color);
     }
 
diff --git a/src/main/java/model/Scissors.java b/src/main/java/model/Scissors.java
new file mode 100644
index 0000000..69f0a11
--- /dev/null
+++ b/src/main/java/model/Scissors.java
@@ -0,0 +1,24 @@
+package model;
+
+import util.Position;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Scissors extends ShifumiElement implements Item{
+    public Scissors(Position position) {
+        super(position);
+        iconName = "Scissors";
+    }
+
+    public List<Position> reaction(Board board, Item item, Position potentialMove){
+        if (item instanceof Paper){
+            return tryKillAndMove(board, potentialMove);
+        } else if (item instanceof Stone) {
+            return escape(board, potentialMove);
+        }
+        return new ArrayList<>();
+    }
+
+    public String toString() { return "Scissors position : [" + position.row() + ", " + position.column()+ "]"; }
+}
diff --git a/src/main/java/model/ShifumiElement.java b/src/main/java/model/ShifumiElement.java
new file mode 100644
index 0000000..cdc83a2
--- /dev/null
+++ b/src/main/java/model/ShifumiElement.java
@@ -0,0 +1,92 @@
+package model;
+
+import javafx.geometry.Pos;
+import util.Position;
+import view.Grid;
+
+import java.util.*;
+
+public abstract class ShifumiElement {
+    protected Position position;
+    protected String iconName;
+
+    public ShifumiElement(Position position){
+        this.position = position;
+    }
+
+    public Position position() {
+        return position;
+    }
+
+    public List<Position> update(Board board){
+        List<Position> result = new ArrayList<>();
+        Set<Position> seen = new HashSet<>();
+        HashMap<Position, Position> firstMove = new HashMap<>();
+        Queue<Position> toVisit = new LinkedList<>();
+        for (Position initialMove : board.neighbors(position)) {
+            result = reaction(board, board.getItemByPosition(initialMove), initialMove);
+            if (!result.isEmpty()){
+                return result;
+            }
+            if (board.getItemByPosition(initialMove) == null) {
+                firstMove.put(initialMove, initialMove);
+                toVisit.add(initialMove);
+            }
+        }
+        while (!toVisit.isEmpty()) {
+            Position current = toVisit.poll();
+            result = reaction(board, board.getItemByPosition(current), firstMove.get(current));
+            if (!result.isEmpty()) {
+                break;
+            }
+            for (Position adjacent : board.neighbors(current)) {
+                if (seen.contains(adjacent)) continue;
+                toVisit.add(adjacent);
+                seen.add(adjacent);
+                firstMove.put(adjacent, firstMove.get(current));
+            }
+        }
+        return result;
+    }
+
+
+    public void paint(Grid grid){
+        grid.paintPicture(position.row(), position.column(), "/pictures/"+iconName+".png");
+    }
+
+    public abstract String toString();
+
+    public abstract List<Position> reaction(Board board, Item item, Position potentialMove);
+
+    public List<Position> escape(Board board, Position escapePosition) {
+        List<Position> result = new ArrayList<>();
+        List<Position> neighbors = board.emptyNeighbors(position);
+        neighbors.remove(escapePosition);
+        for (Position neighbor: neighbors) {
+            if (neighbor == board.opposite(escapePosition, position)){
+                result.add(position);
+                position = neighbor;
+                result.add(position);
+                return result;
+            }
+        }
+        if (!neighbors.isEmpty()) {
+            result.add(position);
+            position = neighbors.get(new Random().nextInt(neighbors.size()));
+            result.add(position);
+            return result;
+        }
+        return result;
+    }
+
+    public List<Position> tryKillAndMove(Board board, Position newPosition){
+        List<Position> result = new ArrayList<>();
+        board.itemList().remove(board.getItemByPosition(newPosition));
+        result.add(this.position);
+        position = newPosition;
+        result.add(this.position);
+        return result;
+    }
+}
+
+
diff --git a/src/main/java/model/Stone.java b/src/main/java/model/Stone.java
new file mode 100644
index 0000000..fbfe085
--- /dev/null
+++ b/src/main/java/model/Stone.java
@@ -0,0 +1,26 @@
+package model;
+
+import util.Position;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Stone extends ShifumiElement implements Item{
+    public Stone(Position position) {
+        super(position);
+        iconName = "Stone";
+    }
+
+    public List<Position> reaction(Board board, Item item, Position potentialMove){
+        if (item instanceof Scissors){
+            return tryKillAndMove(board, potentialMove);
+        } else if (item instanceof Paper) {
+            return escape(board, potentialMove);
+        }
+        return new ArrayList<>();
+    }
+
+    public String toString(){
+        return "Stone position : [" + position.row() + ", " + position.column()+ "]";
+    }
+}
diff --git a/src/main/java/model/StonePaperScissorsBoard.java b/src/main/java/model/StonePaperScissorsBoard.java
new file mode 100644
index 0000000..18fb1c1
--- /dev/null
+++ b/src/main/java/model/StonePaperScissorsBoard.java
@@ -0,0 +1,165 @@
+package model;
+
+import util.Position;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+
+public class StonePaperScissorsBoard implements Board {
+    private final int columnCount;
+    private final int rowCount;
+    private final int initialPaperCount;
+    private final int initialScissorsCount;
+    private final int initialStoneCount;
+    private List<Item> itemList;
+    private int step = 0;
+    private final Random randomGenerator = new Random();
+
+    public StonePaperScissorsBoard(int columnCount, int rowCount, int initialPaperCount, int initialScissorsCount, int initialStoneCount) {
+        this.columnCount = columnCount;
+        this.rowCount = rowCount;
+        this.itemList = new ArrayList<>();
+        this.initialPaperCount = initialPaperCount;
+        this.initialScissorsCount = initialScissorsCount;
+        this.initialStoneCount = initialStoneCount;
+        initializeItems();
+    }
+
+    public void initializeItems() {
+        for (int i = 0; i < initialPaperCount; i++){
+            itemList.add(new Paper(randomEmptyPosition()));
+        }
+        for (int i = 0; i < initialScissorsCount; i++){
+            itemList.add(new Scissors(randomEmptyPosition()));
+        }
+        for (int i = 0; i < initialStoneCount; i++){
+            itemList.add(new Stone(randomEmptyPosition()));
+        }
+    }
+
+    private Position randomEmptyPosition() {
+        Position result;
+        for(;;){
+            result = randomPosition();
+            if (getItemByPosition(result) == null) return result;
+        }
+    }
+
+    private Position randomPosition() {
+        return new Position(randomGenerator.nextInt(rowCount), randomGenerator.nextInt(columnCount));
+    }
+
+    @Override
+    public int rowCount() {
+        return rowCount;
+    }
+
+    @Override
+    public int columnCount() {
+        return columnCount;
+    }
+
+    public List<Position> updateToNextGeneration() {
+        List<Position> result = new ArrayList<Position>();
+        List<Item> actualList = new ArrayList<Item>(itemList);
+        for (Item item : actualList) {
+            if (item instanceof Stone) result.addAll(item.update(this));
+        }
+        actualList = new ArrayList<Item>(itemList);
+        for (Item item : actualList) {
+            if (item instanceof Paper) result.addAll(item.update(this));
+        }
+        actualList = new ArrayList<Item>(itemList);
+        for (Item item : actualList) {
+            if (item instanceof Scissors) result.addAll(item.update(this));
+        }
+        step++;
+        return result;
+    }
+
+    @Override
+    public int stepNumber() { return step; }
+
+    public List<Item> itemList() { return itemList; }
+
+    public Item getItemByPosition(Position position) {
+        for (Item item : itemList) {
+            if (item.position().equals(position)) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    @Override
+    public Box getBoxByPosition(Position position) {
+        return null;
+    }
+
+
+    @Override
+    public void reset() {
+        step = 0;
+        itemList.clear();
+        initializeItems();
+    }
+
+    public List<Position> neighbors(Position position) {
+        List<Position> list = new ArrayList<>();
+        if (position.row() > 0) list.add(new Position(position.row() - 1, position.column()));
+        if (position.column() > 0) list.add(new Position(position.row(), position.column() - 1));
+        if (position.row() < rowCount - 1) list.add(new Position(position.row() + 1, position.column()));
+        if (position.column() < columnCount - 1) list.add(new Position(position.row(), position.column() + 1));
+        return list;
+    }
+
+    public List<Position> emptyNeighbors(Position position) {
+        List<Position> list = new ArrayList<>();
+        if (position.row() > 0 && getItemByPosition(new Position(position.row() - 1, position.column())) == null) list.add(new Position(position.row() - 1, position.column()));
+        if (position.column() > 0 && getItemByPosition(new Position(position.row(), position.column() - 1)) == null) list.add(new Position(position.row(), position.column() - 1));
+        if (position.row() < rowCount - 1 && getItemByPosition(new Position(position.row()+ 1, position.column())) == null) list.add(new Position(position.row() + 1, position.column()));
+        if (position.column() < columnCount - 1 && getItemByPosition(new Position(position.row()+ 1, position.column())) == null) list.add(new Position(position.row(), position.column() + 1));
+        return list;
+    }
+
+    @Override
+    public Position opposite(Position opposite, Position center) {
+        if (opposite != center && (opposite.column() == center.column() || opposite.row() == center.row())){
+            if (opposite.column() == (center.column()+1)) {
+                return new Position(center.row(), center.column()-1);
+            } else if (opposite.column() == (center.column()-1)) {
+                return new Position(center.row(), center.column()-1);
+            } else if (opposite.row() == (center.row()+1)) {
+                return new Position(center.row()-1, center.column());
+            } else if (opposite.row() == (center.row()-1)) {
+                return new Position(center.row()+1, center.column());
+            }
+        }
+        return null;
+    }
+
+    public void testScreen(){
+        Position position;
+
+        System.out.println(itemList.toString());
+
+        for (int row = 0; row < rowCount; row++){
+            for (int column = 0; column < columnCount; column++){
+
+                position = new Position(row,column);
+                if (getItemByPosition(position) == null){
+                    System.out.print("□  ");
+                } else if (getItemByPosition(position) instanceof Stone) {
+                    System.out.print("St ");
+                } else if (getItemByPosition(position) instanceof Paper) {
+                    System.out.print("Pa ");
+                } else if (getItemByPosition(position) instanceof Scissors) {
+                    System.out.print("sc ");
+                }
+            }
+            System.out.println();
+        }
+        System.out.println();
+    }
+}
diff --git a/src/main/java/view/FirefighterGrid.java b/src/main/java/view/FirefighterGrid.java
index aeaa2bf..12f6c4e 100644
--- a/src/main/java/view/FirefighterGrid.java
+++ b/src/main/java/view/FirefighterGrid.java
@@ -102,6 +102,10 @@ public class FirefighterGrid extends Canvas implements Grid{
         getGraphicsContext2D().fillRect(column*squareWidth,row*squareHeight, squareWidth, squareHeight);
     }
 
+    @Override
+    public void paintPicture(int row, int column, String iconDirectory) {
+    }
+
     public void paintTriangle(int row, int column, Color color){
         getGraphicsContext2D().setFill(color);
         getGraphicsContext2D().fillPolygon(new double[]{column*squareWidth , column*squareWidth + squareWidth/2, (column+1)*squareWidth},
diff --git a/src/main/java/view/Grid.java b/src/main/java/view/Grid.java
index 599a312..db71753 100644
--- a/src/main/java/view/Grid.java
+++ b/src/main/java/view/Grid.java
@@ -1,5 +1,6 @@
 package view;
 
+import javafx.scene.paint.Color;
 import javafx.util.Pair;
 import model.Item;
 import util.Position;
@@ -11,8 +12,6 @@ import java.util.List;
 
 /**
  * This interface represents a generic grid structure for displaying two-dimensional data.
- *
- * @param <E> The type of elements stored in the grid.
  */
 public interface Grid {
 
@@ -44,5 +43,13 @@ public interface Grid {
   int rowCount();
 
   void initialize(Board board);
+
+  void paintCircle(int row, int column, Color color);
+
+  void paintSquare(int row, int column, Color color);
+
+  void paintPicture(int row, int column, String iconDirectory);
+
+  void paintTriangle(int row, int column, Color color);
 }
 
diff --git a/src/main/java/view/StonePaperScissorsGrid.java b/src/main/java/view/StonePaperScissorsGrid.java
new file mode 100644
index 0000000..bad702b
--- /dev/null
+++ b/src/main/java/view/StonePaperScissorsGrid.java
@@ -0,0 +1,109 @@
+package view;
+
+import javafx.scene.canvas.Canvas;
+import javafx.scene.image.Image;
+import javafx.scene.paint.Color;
+import model.Board;
+import model.Box;
+import model.Item;
+import util.Position;
+
+import java.io.InputStream;
+import java.util.List;
+
+public class StonePaperScissorsGrid extends Canvas implements Grid {
+    private int squareWidth;
+    private int squareHeight;
+    private int columnCount;
+    private int rowCount;
+
+    public void repaint(List<Item> itemList, List<Position> clearList, Board board) {
+        clear(clearList);
+        paintItems(itemList);
+        paintLines();
+    }
+
+    private void clear(List<Position> positions) {
+        for (Position position : positions) {
+            paintSquare(position.row(), position.column(), Color.WHITE);
+        }
+    }
+
+    private void paintItems(List<Item> itemList) {
+        for (Item item : itemList) {
+            item.paint(this);
+        }
+    }
+
+    public void initialize(Board board) {
+        for (int row = 0; row < rowCount; row++){
+            for (int column = 0; column < columnCount; column++){
+                paintSquare(row, column, Color.WHITE);
+            }
+        }
+        paintLines();
+        paintItems(board.itemList());
+    }
+
+    public int columnCount() {
+        return columnCount;
+    }
+
+    public int rowCount() {
+        return rowCount;
+    }
+
+    @Override
+    public void setDimensions(int columnCount, int rowCount, int squareWidth, int squareHeight) {
+        this.squareWidth = squareWidth;
+        this.squareHeight = squareHeight;
+        this.columnCount = columnCount;
+        this.rowCount = rowCount;
+        super.setWidth(squareWidth*columnCount);
+        super.setHeight(squareHeight*rowCount);
+
+    }
+
+    private void paintLines(){
+        paintHorizontalLines();
+        paintVerticalLines();
+    }
+
+    private void paintVerticalLines() {
+        for(int column = 0; column < columnCount; column++)
+            getGraphicsContext2D().strokeLine(column*squareWidth, 0,column*squareWidth, getHeight());
+    }
+
+    private void paintHorizontalLines() {
+        for(int row = 0; row < rowCount; row++)
+            getGraphicsContext2D().strokeLine(0, row*squareHeight, getWidth(), row*squareHeight);
+    }
+
+    public void paintSquare(int row, int column, Color color){
+        getGraphicsContext2D().setFill(color);
+        getGraphicsContext2D().fillRect(column*squareWidth,row*squareHeight, squareWidth, squareHeight);
+    }
+
+    @Override
+    public void paintPicture(int row, int column, String iconDirectory) {
+        InputStream input = this.getClass().getResourceAsStream(iconDirectory);
+        assert input != null;
+        getGraphicsContext2D().drawImage(new Image(input, squareWidth, squareHeight,false, true),column*squareWidth , row*squareHeight);
+    }
+
+    public void paintTriangle(int row, int column, Color color){
+        getGraphicsContext2D().setFill(color);
+        getGraphicsContext2D().fillPolygon(new double[]{column*squareWidth , column*squareWidth + squareWidth/2, (column+1)*squareWidth},
+                new double[]{(row+1)*squareHeight , row*squareHeight, (row+1)*squareHeight},
+                3);
+    }
+
+    public void paintCircle(int row, int column, Color color){
+        getGraphicsContext2D().setFill(color);
+        getGraphicsContext2D().fillOval(column*squareWidth, row*squareHeight, squareHeight, squareWidth);
+    }
+
+    private void clearSquare(int row, int column){
+        getGraphicsContext2D().clearRect(column*squareWidth,row*squareHeight, squareWidth, squareHeight);
+    }
+}
diff --git a/src/main/resources/pictures/Paper.png b/src/main/resources/pictures/Paper.png
new file mode 100644
index 0000000000000000000000000000000000000000..a1d0c20c35dd5134d6e7c4ed2714eb0ace84be81
GIT binary patch
literal 20917
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
Hl+XkKu3PDd

literal 0
HcmV?d00001

diff --git a/src/main/resources/pictures/Scissors.png b/src/main/resources/pictures/Scissors.png
new file mode 100644
index 0000000000000000000000000000000000000000..5a50d1ae4c24691c4a8bc1f01971d8e4d2c8cb56
GIT binary patch
literal 17655
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

literal 0
HcmV?d00001

diff --git a/src/main/resources/pictures/Stone.png b/src/main/resources/pictures/Stone.png
new file mode 100644
index 0000000000000000000000000000000000000000..c95af38a86265c54e7bc451116704e5739f273f6
GIT binary patch
literal 16929
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
F0syDIiyZ&}

literal 0
HcmV?d00001

diff --git a/src/main/resources/view/view.fxml b/src/main/resources/view/Firefighterview.fxml
similarity index 100%
rename from src/main/resources/view/view.fxml
rename to src/main/resources/view/Firefighterview.fxml
diff --git a/src/main/resources/view/StonePaperScissorsView.fxml b/src/main/resources/view/StonePaperScissorsView.fxml
new file mode 100644
index 0000000..a93e463
--- /dev/null
+++ b/src/main/resources/view/StonePaperScissorsView.fxml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.scene.control.Button?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+<?import view.StonePaperScissorsGrid?>
+
+<?import javafx.scene.control.ToggleButton?>
+<?import javafx.scene.control.Separator?>
+<?import javafx.scene.control.Label?>
+<HBox styleClass="background" stylesheets="@DarkTheme.css"
+      xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml"
+      fx:controller="controller.Controller">
+    <VBox>
+        <Separator maxHeight="-Infinity" maxWidth="-Infinity"
+                   prefHeight="24.0" prefWidth="200.0"/>
+        <Label maxHeight="-Infinity" maxWidth="-Infinity" alignment="CENTER" prefHeight="24.0" prefWidth="200.0"
+               text="Generation number"/>
+        <Label fx:id="generationNumberLabel" alignment="CENTER" contentDisplay="TEXT_ONLY"
+               maxHeight="-Infinity" maxWidth="-Infinity" prefHeight="24.0" prefWidth="200.0"/>
+        <Separator maxHeight="-Infinity" maxWidth="-Infinity"
+                   prefHeight="24.0" prefWidth="200.0"/>
+        <Button fx:id="restartButton" maxHeight="-Infinity" maxWidth="-Infinity"
+                mnemonicParsing="false" onAction="#restartButtonAction" prefHeight="24.0" prefWidth="200.0"
+                text="Restart"/>
+        <Button fx:id="oneStepButton" maxHeight="-Infinity" maxWidth="-Infinity"
+                mnemonicParsing="false" onAction="#oneStepButtonAction" prefHeight="24.0" prefWidth="200.0"
+                text="One step"/>
+        <ToggleButton fx:id="playToggleButton" maxHeight="-Infinity" maxWidth="-Infinity"
+                      mnemonicParsing="false" onAction="#playToggleButtonAction" prefHeight="24.0"
+                      prefWidth="200.0" styleClass="button" text="Play"/>
+        <ToggleButton fx:id="pauseToggleButton" maxHeight="-Infinity" maxWidth="-Infinity"
+                      mnemonicParsing="false" onAction="#pauseToggleButtonAction" prefHeight="24.0"
+                      prefWidth="200.0" styleClass="button" text="Pause"/>
+    </VBox>
+    <StonePaperScissorsGrid fx:id="grid"
+                     xmlns="http://javafx.com/javafx"
+                     xmlns:fx="http://javafx.com/fxml">
+    </StonePaperScissorsGrid>
+</HBox>
\ No newline at end of file
-- 
GitLab