From 892f690fb7731e356fcd63d79fd387db6b8db088 Mon Sep 17 00:00:00 2001
From: Romain Lebouc <rlebouc@insa-rennes.fr>
Date: Fri, 13 May 2016 16:54:49 +0200
Subject: [PATCH] GUI: random generation of start now has a mawimum amount for
 every fish tile type

---
 gui/src/controller/Controller.java | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/gui/src/controller/Controller.java b/gui/src/controller/Controller.java
index 010484f..2739604 100644
--- a/gui/src/controller/Controller.java
+++ b/gui/src/controller/Controller.java
@@ -23,6 +23,7 @@ import java.io.IOException;
 import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 import java.net.URL;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Random;
 import java.util.ResourceBundle;
@@ -32,6 +33,7 @@ public class Controller implements Initializable
 	private static final String iaProgramPath = "../bin/theturk";
 	private static final String introMusicFile = "./resource/pingu_theme.wav";
 	private static final String clickSoundFile = "./resource/clic.wav";
+	private static final int max1Fish = 30, max2Fish = 20, max3Fish = 10;
 
 	private GameState gameState;
 	private Process gameProcess;
@@ -121,12 +123,21 @@ public class Controller implements Initializable
 			gameState.setScore(Player.Red, 0);
 			gameState.setScore(Player.Blue, 0);
 			//Generating random fish values
+			int[] fishCount = {0,0,0};
 			for (int i = 0; i < 60; i++)
 			{
-				int nbFish = new Random().nextInt(3) + 1;
+				List<Integer> possibleFish = new ArrayList<>();
+				if(fishCount[0] < max1Fish)
+					possibleFish.add(1);
+				if(fishCount[1] < max2Fish)
+					possibleFish.add(2);
+				if(fishCount[2] < max3Fish)
+					possibleFish.add(3);
+				int nbFish = possibleFish.get(new Random().nextInt(possibleFish.size()));
 				gameState.setFish(i, nbFish);
 				board[i].setNbFish(nbFish);
 				boardView[i].update();
+				fishCount[nbFish-1]++;
 			}
 			//Adding listener to add penguins
 			penguinGenCounter = 0;
-- 
GitLab