diff --git a/class/application/Controller$4.class b/class/application/Controller$4.class index 18e172e014f9f90cf9c77aac8d174c5207080d6d..4f60b496f10af4cf9f947231cbafa5df3c3fee53 100644 Binary files a/class/application/Controller$4.class and b/class/application/Controller$4.class differ diff --git a/class/application/Controller$5.class b/class/application/Controller$5.class index 8af2d7a21736cb309334f3db6649df62f7150a7c..214ee6007f791e9e7d1f629ec33131901f2caec7 100644 Binary files a/class/application/Controller$5.class and b/class/application/Controller$5.class differ diff --git a/class/application/Controller$6.class b/class/application/Controller$6.class index c6e728912a18f3fbf8453904330e8e10bf5fec52..e54264ca2edcfce086383ee75a7c51216832f40a 100644 Binary files a/class/application/Controller$6.class and b/class/application/Controller$6.class differ diff --git a/class/application/Controller$7.class b/class/application/Controller$7.class index 924830cc9a644c72f247fc5b0f8afae39ecf9e96..d61976a7aeeb3560e3825f3ec598fed2f17e03c1 100644 Binary files a/class/application/Controller$7.class and b/class/application/Controller$7.class differ diff --git a/class/application/Controller$8.class b/class/application/Controller$8.class index 317db5cfe359ab74d87b9e022e8e2e9ded25904a..0bb9c120efd23b4a10e1fa46428acd8e6f9724ca 100644 Binary files a/class/application/Controller$8.class and b/class/application/Controller$8.class differ diff --git a/class/application/Controller.class b/class/application/Controller.class index 5cfe2b26c0c85dea77f618ede9f90e9d5812753a..d79542545c43205b875435062864f7c1a9df6c34 100644 Binary files a/class/application/Controller.class and b/class/application/Controller.class differ diff --git a/class/application/Main.class b/class/application/Main.class index 08935e4292693a679681f849b984d2e497e64a36..9052a30434ad5936f733b59d1de4fb72348f0b71 100644 Binary files a/class/application/Main.class and b/class/application/Main.class differ diff --git a/src/application/Controller.java b/src/application/Controller.java index c3bb0b7561ea5b00250bf01b84f3d470414741dc..816c6cd92e2d773837c1faf3b12ae83cefe18826 100644 --- a/src/application/Controller.java +++ b/src/application/Controller.java @@ -70,10 +70,10 @@ public class Controller private final ResourceBundle bundle = ResourceBundle.getBundle("application/", Locale.GERMANY); private final double CARD_HEIGHT = 90.0; - private final double CARD_WIDTH = 57.0; + private final double CARD_WIDTH = 57.0; private final double CARD_SPACING_LARGE = 14.0; - private final double CARD_SPACING_MEDIUM = - 3.0; + private final double CARD_SPACING_MEDIUM = 0.0; private final double CARD_SPACING_SMALL = - 25.0; private final double CARD_SPACING_ULTRA_SMALL = - 35.0; @@ -306,6 +306,7 @@ public class Controller ImageView imageView = new ImageView(new Image("images/" + card.getType() + "-" + card.getColor() + ".png")); imageView.setFitHeight(CARD_HEIGHT); imageView.setFitWidth(CARD_WIDTH); + imageView.setSmooth(true); if(!valid) { @@ -542,21 +543,21 @@ public class Controller { if((deckSize * (CARD_WIDTH + CARD_SPACING_SMALL)) > maxWidth) { - return (PLAYER_STARTING_POINT.getX() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_ULTRA_SMALL))); + return PLAYER_STARTING_POINT.getX() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_ULTRA_SMALL)) - CARD_SPACING_ULTRA_SMALL; } else { - return (PLAYER_STARTING_POINT.getX() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_SMALL))); + return PLAYER_STARTING_POINT.getX() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_SMALL)) - CARD_SPACING_SMALL; } } else { - return (PLAYER_STARTING_POINT.getX() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_MEDIUM))); + return PLAYER_STARTING_POINT.getX() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_MEDIUM)) - CARD_SPACING_MEDIUM; } } else { - return (PLAYER_STARTING_POINT.getX() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_LARGE))); + return PLAYER_STARTING_POINT.getX() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_LARGE)) - CARD_SPACING_LARGE; } } //AI 1 (Above Player) @@ -570,21 +571,21 @@ public class Controller { if((deckSize * (CARD_WIDTH + CARD_SPACING_SMALL)) > maxWidth) { - return (AI_1_STARTING_POINT.getX() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_ULTRA_SMALL))); + return AI_1_STARTING_POINT.getX() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_ULTRA_SMALL)) - CARD_SPACING_ULTRA_SMALL; } else { - return (AI_1_STARTING_POINT.getX() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_SMALL))); + return AI_1_STARTING_POINT.getX() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_SMALL)) - CARD_SPACING_SMALL; } } else { - return (AI_1_STARTING_POINT.getX() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_MEDIUM))); + return AI_1_STARTING_POINT.getX() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_MEDIUM)) - CARD_SPACING_MEDIUM; } } else { - return (AI_1_STARTING_POINT.getX() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_LARGE))); + return AI_1_STARTING_POINT.getX() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_LARGE)) - CARD_SPACING_LARGE; } } } @@ -600,21 +601,21 @@ public class Controller { if((deckSize * (CARD_WIDTH + CARD_SPACING_SMALL)) > maxHeight) { - return AI_2_STARTING_POINT.getY() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_ULTRA_SMALL)); + return AI_2_STARTING_POINT.getY() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_ULTRA_SMALL)) - CARD_SPACING_ULTRA_SMALL; } else { - return AI_2_STARTING_POINT.getY() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_SMALL)); + return AI_2_STARTING_POINT.getY() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_SMALL)) - CARD_SPACING_SMALL; } } else { - return AI_2_STARTING_POINT.getY() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_MEDIUM)); + return AI_2_STARTING_POINT.getY() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_MEDIUM)) - CARD_SPACING_MEDIUM; } } else { - return AI_2_STARTING_POINT.getY() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_LARGE)); + return AI_2_STARTING_POINT.getY() + ((deckSize + 1) * (CARD_WIDTH + CARD_SPACING_LARGE)) - CARD_SPACING_LARGE; } } @@ -708,36 +709,43 @@ public class Controller int counter = 1; - for(Card currentCard : deck) - { - ImageView current = createCard(currentCard, true); + for(int i = 0; i < deck.size(); i++) + { + ImageView current = createCard(deck.get(i), true); current.setId("player"); - mainPane.getChildren().add(current); - - double maxWidth = stage.getScene().getWidth() - (PLAYER_STARTING_POINT.getX() * 2) - CARD_WIDTH; - if((deck.size() * (CARD_WIDTH + CARD_SPACING_LARGE)) > maxWidth) + mainPane.getChildren().add(current); + + if(i == 0) { - if((deck.size() * (CARD_WIDTH + CARD_SPACING_MEDIUM)) > maxWidth) + current.setX(AI_1_STARTING_POINT.getX() + CARD_WIDTH); + } + else + { + double maxWidth = stage.getScene().getWidth() - (PLAYER_STARTING_POINT.getX() * 2) - CARD_WIDTH; + if((deck.size() * (CARD_WIDTH + CARD_SPACING_LARGE)) > maxWidth) { - if((deck.size() * (CARD_WIDTH + CARD_SPACING_SMALL)) > maxWidth) + if((deck.size() * (CARD_WIDTH + CARD_SPACING_MEDIUM)) > maxWidth) { - current.setX(PLAYER_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_ULTRA_SMALL))); + if((deck.size() * (CARD_WIDTH + CARD_SPACING_SMALL)) > maxWidth) + { + current.setX(PLAYER_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_ULTRA_SMALL)) - CARD_SPACING_ULTRA_SMALL); + } + else + { + current.setX(PLAYER_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_SMALL)) - CARD_SPACING_SMALL); + } } else { - current.setX(PLAYER_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_SMALL))); + current.setX(PLAYER_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_MEDIUM)) - CARD_SPACING_MEDIUM); } } else { - current.setX(PLAYER_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_MEDIUM))); + current.setX(PLAYER_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_LARGE)) - CARD_SPACING_LARGE); } } - else - { - current.setX(PLAYER_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_LARGE))); - } current.setY(PLAYER_STARTING_POINT.getY()); @@ -751,8 +759,9 @@ public class Controller int counter = 1; - for(Card currentCard : deck) - { + for(int i = 0; i < deck.size(); i++) + { + Card currentCard = deck.get(i); ImageView current; if(validDeck.contains(currentCard)) @@ -770,30 +779,36 @@ public class Controller mainPane.getChildren().add(current); - double maxWidth = stage.getScene().getWidth() - (PLAYER_STARTING_POINT.getX() * 2) - CARD_WIDTH; - - if((deck.size() * (CARD_WIDTH + CARD_SPACING_LARGE)) > maxWidth) + if(i == 0) { - if((deck.size() * (CARD_WIDTH + CARD_SPACING_MEDIUM)) > maxWidth) + current.setX(AI_1_STARTING_POINT.getX() + CARD_WIDTH); + } + else + { + double maxWidth = stage.getScene().getWidth() - (PLAYER_STARTING_POINT.getX() * 2) - CARD_WIDTH; + if((deck.size() * (CARD_WIDTH + CARD_SPACING_LARGE)) > maxWidth) { - if((deck.size() * (CARD_WIDTH + CARD_SPACING_SMALL)) > maxWidth) + if((deck.size() * (CARD_WIDTH + CARD_SPACING_MEDIUM)) > maxWidth) { - current.setX(PLAYER_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_ULTRA_SMALL))); + if((deck.size() * (CARD_WIDTH + CARD_SPACING_SMALL)) > maxWidth) + { + current.setX(PLAYER_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_ULTRA_SMALL)) - CARD_SPACING_ULTRA_SMALL); + } + else + { + current.setX(PLAYER_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_SMALL)) - CARD_SPACING_SMALL); + } } else { - current.setX(PLAYER_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_SMALL))); + current.setX(PLAYER_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_MEDIUM)) - CARD_SPACING_MEDIUM); } } else { - current.setX(PLAYER_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_MEDIUM))); + current.setX(PLAYER_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_LARGE)) - CARD_SPACING_LARGE); } } - else - { - current.setX(PLAYER_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_LARGE))); - } counter++; } @@ -812,7 +827,6 @@ public class Controller } } - @SuppressWarnings("unused") public void setAIDeck(AI ai) { clearAIDeck(ai); @@ -821,7 +835,7 @@ public class Controller int counter = 1; - for(Card currentCard : deck) + for(int i = 0; i < deck.size(); i++) { ImageView current = createBackCard(); @@ -831,35 +845,42 @@ public class Controller double maxWidth; double maxHeight; - int deckSize; + int deckSize; switch(ai.getID()) { case 1: maxWidth = stage.getScene().getWidth() - ((AI_1_STARTING_POINT.getX() + 25.0) * 2) - CARD_WIDTH; deckSize = ai.getDeckSize(); - if((deckSize * (CARD_WIDTH + CARD_SPACING_LARGE)) > maxWidth) + if(i == 0) { - if((deckSize * (CARD_WIDTH + CARD_SPACING_MEDIUM)) > maxWidth) + current.setX(AI_1_STARTING_POINT.getX() + CARD_WIDTH); + } + else + { + if((deckSize * (CARD_WIDTH + CARD_SPACING_LARGE)) > maxWidth) { - if((deckSize * (CARD_WIDTH + CARD_SPACING_SMALL)) > maxWidth) + if((deckSize * (CARD_WIDTH + CARD_SPACING_MEDIUM)) > maxWidth) { - current.setX(AI_1_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_ULTRA_SMALL))); + if((deckSize * (CARD_WIDTH + CARD_SPACING_SMALL)) > maxWidth) + { + current.setX(AI_1_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_ULTRA_SMALL)) - CARD_SPACING_ULTRA_SMALL); + } + else + { + current.setX(AI_1_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_SMALL)) - CARD_SPACING_SMALL); + } } else { - current.setX(AI_1_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_SMALL))); + current.setX(AI_1_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_MEDIUM)) - CARD_SPACING_MEDIUM); } } else { - current.setX(AI_1_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_MEDIUM))); + current.setX(AI_1_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_LARGE)) - CARD_SPACING_LARGE); } } - else - { - current.setX(AI_1_STARTING_POINT.getX() + (counter * (CARD_WIDTH + CARD_SPACING_LARGE))); - } current.setY(AI_1_STARTING_POINT.getY()); break; @@ -867,30 +888,37 @@ public class Controller case 2: maxHeight = stage.getScene().getHeight() - ((AI_2_STARTING_POINT.getY() + 50.0) * 2) - CARD_WIDTH; deckSize = ai.getDeckSize(); - current.setRotate(90.0); - - if((deckSize * (CARD_WIDTH + CARD_SPACING_LARGE)) > maxHeight) + current.setRotate(-90.0); + + if(i == 0) { - if((deckSize * (CARD_WIDTH + CARD_SPACING_MEDIUM)) > maxHeight) + current.setY(AI_2_STARTING_POINT.getY() + CARD_WIDTH); + } + else + { + if((deckSize * (CARD_WIDTH + CARD_SPACING_LARGE)) > maxHeight) { - if((deckSize * (CARD_WIDTH + CARD_SPACING_SMALL)) > maxHeight) + if((deckSize * (CARD_WIDTH + CARD_SPACING_MEDIUM)) > maxHeight) { - current.setY(AI_2_STARTING_POINT.getY() + (counter * (CARD_WIDTH + CARD_SPACING_ULTRA_SMALL))); + if((deckSize * (CARD_WIDTH + CARD_SPACING_SMALL)) > maxHeight) + { + current.setY(AI_2_STARTING_POINT.getY() + (counter * (CARD_WIDTH + CARD_SPACING_ULTRA_SMALL)) - CARD_SPACING_ULTRA_SMALL); + } + else + { + current.setY(AI_2_STARTING_POINT.getY() + (counter * (CARD_WIDTH + CARD_SPACING_SMALL)) - CARD_SPACING_SMALL); + } } else { - current.setY(AI_2_STARTING_POINT.getY() + (counter * (CARD_WIDTH + CARD_SPACING_SMALL))); + current.setY(AI_2_STARTING_POINT.getY() + (counter * (CARD_WIDTH + CARD_SPACING_MEDIUM)) - CARD_SPACING_MEDIUM); } } else { - current.setY(AI_2_STARTING_POINT.getY() + (counter * (CARD_WIDTH + CARD_SPACING_MEDIUM))); + current.setY(AI_2_STARTING_POINT.getY() + (counter * (CARD_WIDTH + CARD_SPACING_LARGE)) - CARD_SPACING_LARGE); } } - else - { - current.setY(AI_2_STARTING_POINT.getY() + (counter * (CARD_WIDTH + CARD_SPACING_LARGE))); - } current.setX(AI_2_STARTING_POINT.getX()); break; @@ -900,28 +928,35 @@ public class Controller current.setRotate(90.0); - if((deckSize * (CARD_WIDTH + CARD_SPACING_LARGE)) > maxHeight) + if(i == 0) { - if((deckSize * (CARD_WIDTH + CARD_SPACING_MEDIUM)) > maxHeight) + current.setY(AI_3_STARTING_POINT.getY() + CARD_WIDTH); + } + else + { + if((deckSize * (CARD_WIDTH + CARD_SPACING_LARGE)) > maxHeight) { - if((deckSize * (CARD_WIDTH + CARD_SPACING_SMALL)) > maxHeight) + if((deckSize * (CARD_WIDTH + CARD_SPACING_MEDIUM)) > maxHeight) { - current.setY(AI_3_STARTING_POINT.getY() + (counter * (CARD_WIDTH + CARD_SPACING_ULTRA_SMALL))); + if((deckSize * (CARD_WIDTH + CARD_SPACING_SMALL)) > maxHeight) + { + current.setY(AI_3_STARTING_POINT.getY() + (counter * (CARD_WIDTH + CARD_SPACING_ULTRA_SMALL)) - CARD_SPACING_ULTRA_SMALL); + } + else + { + current.setY(AI_3_STARTING_POINT.getY() + (counter * (CARD_WIDTH + CARD_SPACING_SMALL)) - CARD_SPACING_SMALL); + } } else { - current.setY(AI_3_STARTING_POINT.getY() + (counter * (CARD_WIDTH + CARD_SPACING_SMALL))); + current.setY(AI_3_STARTING_POINT.getY() + (counter * (CARD_WIDTH + CARD_SPACING_MEDIUM)) - CARD_SPACING_MEDIUM); } } else { - current.setY(AI_3_STARTING_POINT.getY() + (counter * (CARD_WIDTH + CARD_SPACING_MEDIUM))); + current.setY(AI_3_STARTING_POINT.getY() + (counter * (CARD_WIDTH + CARD_SPACING_LARGE)) - CARD_SPACING_LARGE); } } - else - { - current.setY(AI_3_STARTING_POINT.getY() + (counter * (CARD_WIDTH + CARD_SPACING_LARGE))); - } current.setX(AI_3_STARTING_POINT.getX()); break; @@ -942,6 +977,8 @@ public class Controller } } + //TODO reverse is not working correctly + public void about() { Alert alert = new Alert(AlertType.INFORMATION); diff --git a/src/application/Main.java b/src/application/Main.java index 0199cb4db2b939088b05853e76e93d043d7d7b27..e83f9ae679d7fa5252b9fb7aba06f662c408f5cf 100644 --- a/src/application/Main.java +++ b/src/application/Main.java @@ -4,6 +4,7 @@ import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; +import javafx.scene.SceneAntialiasing; import javafx.scene.image.Image; import javafx.stage.Stage; @@ -17,7 +18,7 @@ public class Main extends Application FXMLLoader loader = new FXMLLoader(getClass().getResource("MainGUI.fxml")); Parent root = (Parent)loader.load(); - Scene scene = new Scene(root, 800, 650); + Scene scene = new Scene(root, 800, 650, false, SceneAntialiasing.BALANCED); stage.setResizable(true); stage.setTitle("UNO"); @@ -25,7 +26,7 @@ public class Main extends Application Controller controller = (Controller)loader.getController(); controller.setStage(stage); - controller.init(); + controller.init(); //TODO set minWidth and Height stage.getIcons().add(new Image("images/icon.png"));