From ad4405334886c2283ad0d1b7c921e87c8d812d56 Mon Sep 17 00:00:00 2001
From: Francesco Bariatti <francesco.bariatti@insa-rennes.fr>
Date: Wed, 27 Apr 2016 14:09:10 +0200
Subject: [PATCH] Plateau initialisation and subprogram launch

---
 gui/src/Case.java       |  30 ++++-----
 gui/src/Controller.java | 145 +++++-----------------------------------
 gui/src/Plateau.java    |   7 +-
 3 files changed, 35 insertions(+), 147 deletions(-)

diff --git a/gui/src/Case.java b/gui/src/Case.java
index 150d241..20845cd 100644
--- a/gui/src/Case.java
+++ b/gui/src/Case.java
@@ -2,28 +2,28 @@ import javafx.scene.shape.Polygon;
 
 public class Case {
 
-	private int rang; //N� de la case (bottom right = 0, top left = 59)
+	private int rang; //N de la case (bottom right = 0, top left = 59)
 	private int nbFish;//Nb de poissons sur la case (0 si vide)
-	private boolean bluePenguin; //true s'il y a un pinguin bleu sur la case
-	private boolean redPenguin; //true s'il y a un pinguin rouge sur la case
+	private Penguins penguins;
 	private Polygon caseFX;
 
-	public Case(int rang, int nbFish, boolean bluePenguin, boolean redPenguin, Polygon caseFX) {
-		super();
+
+	public Case(int rang, Penguins penguins, Polygon caseFX)
+	{
 		this.rang = rang;
-		this.nbFish = nbFish;
-		this.bluePenguin = bluePenguin;
-		this.redPenguin = redPenguin;
+		this.penguins = penguins;
 		this.caseFX = caseFX;
+		this.nbFish = 0;
 	}
 
-	public Case(int rang, Polygon caseFX) { //Constructeur de case vide
-		super();
-		this.rang = rang;
-		this.caseFX = caseFX;
-		nbFish=0;
-		bluePenguin=false;
-		redPenguin=false;
+	public Case(int rang, int nbFish, Penguins penguins, Polygon caseFX) {
+		this(rang, penguins, caseFX);
+		this.nbFish = nbFish;
+	}
+
+	public enum Penguins
+	{
+		NO_PENGUIN, RED_PENGUIN, BLUE_PENGUIN;
 	}
 
 }
diff --git a/gui/src/Controller.java b/gui/src/Controller.java
index b890fc5..4925ef3 100644
--- a/gui/src/Controller.java
+++ b/gui/src/Controller.java
@@ -5,6 +5,8 @@ import java.util.ResourceBundle;
 import javafx.event.EventHandler;
 import javafx.fxml.FXML;
 import javafx.fxml.Initializable;
+import javafx.scene.control.Alert;
+import javafx.scene.control.ButtonType;
 import javafx.scene.input.MouseEvent;
 import javafx.scene.layout.BorderPane;
 import javafx.scene.paint.Color;
@@ -13,146 +15,31 @@ public class Controller implements Initializable {
 
 	private State state;
 	private Process gameProcess;
+	private Plateau plateau;
 
 	@FXML
 	private Polygon case0, case1, case2, case3, case4, case5, case6, case7, case8, case9, case10, case11, case12, case13, case14, case15, case16, case17, case18, case19, case20, case21, case22, case23, case24, case25, case26, case27, case28, case29, case30, case31, case32, case33, case34, case35, case36, case37, case38, case39, case40, case41, case42, case43, case44, case45, case46, case47, case48, case49, case50, case51, case52, case53, case54, case55, case56, case57, case58, case59;
-	
+
 	@FXML
 	private BorderPane panneauPrincipal;
 
 	@Override
 	public void initialize(URL location, ResourceBundle resources) {
-
-		/*try {
+		Polygon[] cases = {case0, case1, case2, case3, case4, case5, case6, case7, case8, case9, case10, case11, case12, case13, case14, case15, case16, case17, case18, case19, case20, case21, case22, case23, case24, case25, case26, case27, case28, case29, case30, case31, case32, case33, case34, case35, case36, case37, case38, case39, case40, case41, case42, case43, case44, case45, case46, case47, case48, case49, case50, case51, case52, case53, case54, case55, case56, case57, case58, case59};
+		for(Polygon c : cases)
+		{
+			c.setOnMouseClicked(new MyClickHandler());
+			c.setOnMouseEntered(new MyHexEnteredHandler());
+		}
+		this.plateau = new Plateau(cases);
+		try {
 			this.gameProcess = new ProcessBuilder("../bin/theturk").start();
 		} catch (IOException e) {
-			// TODO Error message and exit
+			Alert alert = new Alert(Alert.AlertType.ERROR,"Can't run penguin program", ButtonType.OK);
+			alert.showAndWait();
 			e.printStackTrace();
-		}*/
-
-
-
-		case0.setOnMouseClicked(new MyClickHandler());
-		case1.setOnMouseClicked(new MyClickHandler());
-		case2.setOnMouseClicked(new MyClickHandler());
-		case3.setOnMouseClicked(new MyClickHandler());
-		case4.setOnMouseClicked(new MyClickHandler());
-		case5.setOnMouseClicked(new MyClickHandler());
-		case6.setOnMouseClicked(new MyClickHandler());
-		case7.setOnMouseClicked(new MyClickHandler());
-		case8.setOnMouseClicked(new MyClickHandler());
-		case9.setOnMouseClicked(new MyClickHandler());
-		case10.setOnMouseClicked(new MyClickHandler());
-		case11.setOnMouseClicked(new MyClickHandler());
-		case12.setOnMouseClicked(new MyClickHandler());
-		case13.setOnMouseClicked(new MyClickHandler());
-		case14.setOnMouseClicked(new MyClickHandler());
-		case15.setOnMouseClicked(new MyClickHandler());
-		case16.setOnMouseClicked(new MyClickHandler());
-		case17.setOnMouseClicked(new MyClickHandler());
-		case18.setOnMouseClicked(new MyClickHandler());
-		case19.setOnMouseClicked(new MyClickHandler());
-		case20.setOnMouseClicked(new MyClickHandler());
-		case21.setOnMouseClicked(new MyClickHandler());
-		case22.setOnMouseClicked(new MyClickHandler());
-		case23.setOnMouseClicked(new MyClickHandler());
-		case24.setOnMouseClicked(new MyClickHandler());
-		case25.setOnMouseClicked(new MyClickHandler());
-		case26.setOnMouseClicked(new MyClickHandler());
-		case27.setOnMouseClicked(new MyClickHandler());
-		case28.setOnMouseClicked(new MyClickHandler());
-		case29.setOnMouseClicked(new MyClickHandler());
-		case30.setOnMouseClicked(new MyClickHandler());
-		case31.setOnMouseClicked(new MyClickHandler());
-		case32.setOnMouseClicked(new MyClickHandler());
-		case33.setOnMouseClicked(new MyClickHandler());
-		case34.setOnMouseClicked(new MyClickHandler());
-		case35.setOnMouseClicked(new MyClickHandler());
-		case36.setOnMouseClicked(new MyClickHandler());
-		case37.setOnMouseClicked(new MyClickHandler());
-		case38.setOnMouseClicked(new MyClickHandler());
-		case39.setOnMouseClicked(new MyClickHandler());
-		case40.setOnMouseClicked(new MyClickHandler());
-		case41.setOnMouseClicked(new MyClickHandler());
-		case42.setOnMouseClicked(new MyClickHandler());
-		case43.setOnMouseClicked(new MyClickHandler());
-		case44.setOnMouseClicked(new MyClickHandler());
-		case45.setOnMouseClicked(new MyClickHandler());
-		case46.setOnMouseClicked(new MyClickHandler());
-		case47.setOnMouseClicked(new MyClickHandler());
-		case48.setOnMouseClicked(new MyClickHandler());
-		case49.setOnMouseClicked(new MyClickHandler());
-		case50.setOnMouseClicked(new MyClickHandler());
-		case51.setOnMouseClicked(new MyClickHandler());
-		case52.setOnMouseClicked(new MyClickHandler());
-		case53.setOnMouseClicked(new MyClickHandler());
-		case54.setOnMouseClicked(new MyClickHandler());
-		case55.setOnMouseClicked(new MyClickHandler());
-		case56.setOnMouseClicked(new MyClickHandler());
-		case57.setOnMouseClicked(new MyClickHandler());
-		case58.setOnMouseClicked(new MyClickHandler());
-		case59.setOnMouseClicked(new MyClickHandler());
-
-		case0.setOnMouseEntered(new MyHexEnteredHandler());
-		case1.setOnMouseEntered(new MyHexEnteredHandler());
-		case2.setOnMouseEntered(new MyHexEnteredHandler());
-		case3.setOnMouseEntered(new MyHexEnteredHandler());
-		case4.setOnMouseEntered(new MyHexEnteredHandler());
-		case5.setOnMouseEntered(new MyHexEnteredHandler());
-		case6.setOnMouseEntered(new MyHexEnteredHandler());
-		case7.setOnMouseEntered(new MyHexEnteredHandler());
-		case8.setOnMouseEntered(new MyHexEnteredHandler());
-		case9.setOnMouseEntered(new MyHexEnteredHandler());
-		case10.setOnMouseEntered(new MyHexEnteredHandler());
-		case11.setOnMouseEntered(new MyHexEnteredHandler());
-		case12.setOnMouseEntered(new MyHexEnteredHandler());
-		case13.setOnMouseEntered(new MyHexEnteredHandler());
-		case14.setOnMouseEntered(new MyHexEnteredHandler());
-		case15.setOnMouseEntered(new MyHexEnteredHandler());
-		case16.setOnMouseEntered(new MyHexEnteredHandler());
-		case17.setOnMouseEntered(new MyHexEnteredHandler());
-		case18.setOnMouseEntered(new MyHexEnteredHandler());
-		case19.setOnMouseEntered(new MyHexEnteredHandler());
-		case20.setOnMouseEntered(new MyHexEnteredHandler());
-		case21.setOnMouseEntered(new MyHexEnteredHandler());
-		case22.setOnMouseEntered(new MyHexEnteredHandler());
-		case23.setOnMouseEntered(new MyHexEnteredHandler());
-		case24.setOnMouseEntered(new MyHexEnteredHandler());
-		case25.setOnMouseEntered(new MyHexEnteredHandler());
-		case26.setOnMouseEntered(new MyHexEnteredHandler());
-		case27.setOnMouseEntered(new MyHexEnteredHandler());
-		case28.setOnMouseEntered(new MyHexEnteredHandler());
-		case29.setOnMouseEntered(new MyHexEnteredHandler());
-		case30.setOnMouseEntered(new MyHexEnteredHandler());
-		case31.setOnMouseEntered(new MyHexEnteredHandler());
-		case32.setOnMouseEntered(new MyHexEnteredHandler());
-		case33.setOnMouseEntered(new MyHexEnteredHandler());
-		case34.setOnMouseEntered(new MyHexEnteredHandler());
-		case35.setOnMouseEntered(new MyHexEnteredHandler());
-		case36.setOnMouseEntered(new MyHexEnteredHandler());
-		case37.setOnMouseEntered(new MyHexEnteredHandler());
-		case38.setOnMouseEntered(new MyHexEnteredHandler());
-		case39.setOnMouseEntered(new MyHexEnteredHandler());
-		case40.setOnMouseEntered(new MyHexEnteredHandler());
-		case41.setOnMouseEntered(new MyHexEnteredHandler());
-		case42.setOnMouseEntered(new MyHexEnteredHandler());
-		case43.setOnMouseEntered(new MyHexEnteredHandler());
-		case44.setOnMouseEntered(new MyHexEnteredHandler());
-		case45.setOnMouseEntered(new MyHexEnteredHandler());
-		case46.setOnMouseEntered(new MyHexEnteredHandler());
-		case47.setOnMouseEntered(new MyHexEnteredHandler());
-		case48.setOnMouseEntered(new MyHexEnteredHandler());
-		case49.setOnMouseEntered(new MyHexEnteredHandler());
-		case50.setOnMouseEntered(new MyHexEnteredHandler());
-		case51.setOnMouseEntered(new MyHexEnteredHandler());
-		case52.setOnMouseEntered(new MyHexEnteredHandler());
-		case53.setOnMouseEntered(new MyHexEnteredHandler());
-		case54.setOnMouseEntered(new MyHexEnteredHandler());
-		case55.setOnMouseEntered(new MyHexEnteredHandler());
-		case56.setOnMouseEntered(new MyHexEnteredHandler());
-		case57.setOnMouseEntered(new MyHexEnteredHandler());
-		case58.setOnMouseEntered(new MyHexEnteredHandler());
-		case59.setOnMouseEntered(new MyHexEnteredHandler());
+			System.exit(1);
+		}
 	}
 
 	//public Polygon getPolygonFromCoordinates(double x, double y){	}
diff --git a/gui/src/Plateau.java b/gui/src/Plateau.java
index 7686b57..a8cc1ff 100644
--- a/gui/src/Plateau.java
+++ b/gui/src/Plateau.java
@@ -1,12 +1,13 @@
+import javafx.scene.shape.Polygon;
 
 public class Plateau {
 	private Case[] grille;
 
 	//Constructeur de grille vide (0 fish, 0 penguins)
-	public Plateau(){
+	public Plateau(Polygon[] casesFX){
 		grille = new Case[60];
-		for (int i=0; i<60 ; i++){
-			grille[i]= new Case(i);
+		for (int i=0; i<casesFX.length ; i++){
+			grille[i]= new Case(i, Case.Penguins.NO_PENGUIN, casesFX[i]);
 		}
 	}
 
-- 
GitLab