@@ -95,6 +95,7 @@ public class GameController extends GuiView implements Initializable {
9595 private Label shelfID3 = new Label ();
9696
9797 //images
98+ ArrayList <Title > titles = new ArrayList <>();
9899 @ FXML
99100 public ImageView logo = new ImageView ();
100101 @ FXML
@@ -251,7 +252,16 @@ private void setBorderRadius (ImageView image, int size){
251252 /**********************************************************************
252253 * GAME *
253254 **********************************************************************/
254-
255+ public Image createImage (int sketch , CardColor color , ArrayList <Title > titles ){
256+ Title tmp = new Title (color , sketch );
257+ if (titles .contains (tmp )){
258+ for (Title title : titles )if (title .equals (tmp ))return title .getImage ();
259+ }
260+ String file = CardImage .getImgName (sketch ,color );
261+ Image image = new Image (this .getClass ().getClassLoader ().getResourceAsStream (file ), 60 , 60 , false , false );
262+ titles .add (new Title (image , color , sketch ));
263+ return image ;
264+ }
255265 public void notifyNewActivePlayer () {
256266 String currentPlayer = player .getActivePlayer ();
257267 if (!Objects .equals (currentPlayer , player .getPlayerID ())){
@@ -284,29 +294,37 @@ public void setMainBoard(){
284294
285295
286296 //TO FIX BOARD DIMENSION
287- String file = CardImage .getImgName (0 ,BLUE );
288- ImageView card = new ImageView (new Image (this .getClass ().getClassLoader ().getResourceAsStream (file ), 50 , 50 , false , false ));
297+ ImageView card = new ImageView (createImage (0 , BLUE , titles ));
298+ card .setFitHeight (50 );
299+ card .setFitWidth (50 );
289300 card .setVisible (false );
290301 GridPane .setConstraints (card ,0 ,0 );
291302 mainBoardGrid .getChildren ().add (card );
292- card = new ImageView (new Image (this .getClass ().getClassLoader ().getResourceAsStream (file ), 50 , 50 , false , false ));
303+ card = new ImageView (createImage (0 , BLUE , titles ));
304+ card .setFitHeight (50 );
305+ card .setFitWidth (50 );
293306 card .setVisible (false );
294307 GridPane .setConstraints (card ,0 ,8 );
295308 mainBoardGrid .getChildren ().add (card );
296- card = new ImageView (new Image (this .getClass ().getClassLoader ().getResourceAsStream (file ), 50 , 50 , false , false ));
309+ card = new ImageView (createImage (0 , BLUE , titles ));
310+ card .setFitHeight (50 );
311+ card .setFitWidth (50 );
297312 card .setVisible (false );
298313 GridPane .setConstraints (card ,8 ,8 );
299314 mainBoardGrid .getChildren ().add (card );
300- card = new ImageView (new Image (this .getClass ().getClassLoader ().getResourceAsStream (file ), 50 , 50 , false , false ));
315+ card = new ImageView (createImage (0 , BLUE , titles ));
316+ card .setFitHeight (50 );
317+ card .setFitWidth (50 );
301318 card .setVisible (false );
302319 GridPane .setConstraints (card ,8 ,0 );
303320 mainBoardGrid .getChildren ().add (card );
304321
305322 Card [][] mainBoard = player .getMainBoard ().getBoard ();
306323 for (int x =0 ;x <player .getMainBoard ().getColumns ();x ++){
307324 for (int y =0 ;y <player .getMainBoard ().getRows (); y ++){
308- file = CardImage .getImgName (mainBoard [x ][y ].getSketch (), mainBoard [x ][y ].getColor ());
309- card = new ImageView (new Image (this .getClass ().getClassLoader ().getResourceAsStream (file ), 50 , 50 , false , false ));
325+ card = new ImageView (createImage (mainBoard [x ][y ].getSketch (), mainBoard [x ][y ].getColor (), titles ));
326+ card .setFitHeight (50 );
327+ card .setFitWidth (50 );
310328 if (mainBoard [x ][y ].getColor ().equals (EMPTY ))card .setVisible (false );
311329 card .setId ("tile" );
312330 GridPane .setConstraints (card ,x ,player .getMainBoard ().getColumns ()-y -1 );
@@ -345,8 +363,9 @@ public void setMyPlayerBoardGrid(){
345363
346364 for (int x =0 ;x <playerBoard .getColumns ();x ++){
347365 for (int y =0 ;y <playerBoard .getRows (); y ++){
348- String file = CardImage .getImgName (cards [x ][y ].getSketch (), cards [x ][y ].getColor ());
349- ImageView card = new ImageView (new Image (this .getClass ().getClassLoader ().getResourceAsStream (file ), 42 , 42 , false , false ));
366+ ImageView card = new ImageView (createImage (cards [x ][y ].getSketch (), cards [x ][y ].getColor (), titles ));
367+ card .setFitHeight (42 );
368+ card .setFitWidth (42 );
350369 if (cards [x ][y ].getColor ().equals (EMPTY ))card .setVisible (false );
351370 GridPane .setConstraints (card , x , player .getMainBoard ().getColumns ()-y );
352371 myPlayerBoardGrid .getChildren ().add (card );
@@ -386,8 +405,9 @@ private void updatePlayerBoard(String playerID, int column, Card[] c, GridPane g
386405 y = y -c .length +1 ;
387406
388407 for (Card card : c ){
389- String file = CardImage .getImgName (card .getSketch (), card .getColor ());
390- ImageView cardImg = new ImageView (new Image (this .getClass ().getClassLoader ().getResourceAsStream (file ), size , size , false , false ));
408+ ImageView cardImg = new ImageView (createImage (card .getSketch (), card .getColor (), titles ));
409+ cardImg .setFitHeight (size );
410+ cardImg .setFitWidth (size );
391411 GridPane .setConstraints (cardImg , column , player .getMainBoard ().getColumns ()-y );
392412 gridPane .getChildren ().add (cardImg );
393413 y ++;
@@ -416,8 +436,9 @@ public void setOtherPlayerBoard(){
416436
417437 for (int x = 0 ; x < playerBoard .getColumns (); x ++) {
418438 for (int y = 0 ; y < playerBoard .getRows (); y ++) {
419- String file = CardImage .getImgName (cards [x ][y ].getSketch (), cards [x ][y ].getColor ());
420- ImageView card = new ImageView (new Image (this .getClass ().getClassLoader ().getResourceAsStream (file ), 17 , 17 , false , false ));
439+ ImageView card = new ImageView (createImage (cards [x ][y ].getSketch (),cards [x ][y ].getColor (), titles ));
440+ card .setFitHeight (17 );
441+ card .setFitWidth (17 );
421442 if (cards [x ][y ].getColor ().equals (EMPTY ))card .setVisible (false );
422443 GridPane .setConstraints (card , x , player .getMainBoard ().getColumns () - y );
423444 gridPane .getChildren ().add (card );
@@ -511,9 +532,9 @@ private void MoveMode(){
511532 private void insertTails (int x , int y , int pose ){
512533
513534 Card [][] mainBoard = player .getMainBoard ().getBoard ();
514-
515- String file = CardImage . getImgName ( mainBoard [ x ][ y ]. getSketch (), mainBoard [ x ][ y ]. getColor () );
516- ImageView card = new ImageView ( new Image ( this . getClass (). getClassLoader (). getResourceAsStream ( file ), 60 , 60 , false , false ) );
535+ ImageView card = new ImageView ( createImage ( mainBoard [ x ][ y ]. getSketch (), mainBoard [ x ][ y ]. getColor (), titles ));
536+ card . setFitHeight ( 60 );
537+ card . setFitWidth ( 60 );
517538 card .setId ("takenCard" );
518539 card .addEventHandler (MouseEvent .MOUSE_CLICKED , new EventHandler <MouseEvent >() {
519540 @ Override
0 commit comments