diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 7c1d56e..51b7581 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,6 +20,11 @@
javafx-controls
19-ea+7
+
+ org.openjfx
+ javafx-media
+ 19-ea+7
+
org.openjfx
javafx-fxml
diff --git a/src/main/java/com/lemoentjiez/mastermind/MEvents.java b/src/main/java/com/lemoentjiez/mastermind/MEvents.java
index 6bfd24a..77916bf 100644
--- a/src/main/java/com/lemoentjiez/mastermind/MEvents.java
+++ b/src/main/java/com/lemoentjiez/mastermind/MEvents.java
@@ -1,14 +1,22 @@
package com.lemoentjiez.mastermind;
+import javafx.animation.FadeTransition;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
+import javafx.scene.media.AudioClip;
import javafx.fxml.Initializable;
import javafx.scene.control.ChoiceBox;
import javafx.scene.control.Label;
import javafx.scene.effect.DropShadow;
import javafx.scene.effect.Effect;
+import javafx.scene.media.Media;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
+import javafx.scene.text.Font;
+import javafx.scene.text.FontWeight;
import javafx.scene.text.TextAlignment;
+import javafx.scene.image.ImageView;
+import javafx.util.Duration;
+
import javax.swing.*;
import java.net.URL;
import java.util.HashMap;
@@ -17,10 +25,17 @@ import java.util.Random;
import java.util.ResourceBundle;
public class MEvents implements Initializable {
-
+ int currentPos1 = -1;
+ int currentPos2 = -1;
+ int currentPos3 = -1;
+ int currentPos4 = -1;
@FXML
private String getWord() {
// y yellow, b blue, g green, r red, z black, x brown
+ // this comment is made ->
+ // -> to accomplish ->
+ // -> 1000 lines of code
+ // hehehhehe
char[] COLORS = {'Y', 'B', 'G', 'R', 'Z', 'X'};
Random rand = new Random();
StringBuilder str = new StringBuilder();
@@ -103,13 +118,69 @@ public class MEvents implements Initializable {
@FXML
private Circle tcirc4;
@FXML
- private ChoiceBox color1;
+ private Circle sm11;
@FXML
- private ChoiceBox color2;
+ private Circle sm12;
@FXML
- private ChoiceBox color3;
+ private Circle sm13;
@FXML
- private ChoiceBox color4;
+ private Circle sm14;
+ @FXML
+ private Circle sm21;
+ @FXML
+ private Circle sm22;
+ @FXML
+ private Circle sm23;
+ @FXML
+ private Circle sm24;
+ @FXML
+ private Circle sm31;
+ @FXML
+ private Circle sm32;
+ @FXML
+ private Circle sm33;
+ @FXML
+ private Circle sm34;
+ @FXML
+ private Circle sm41;
+ @FXML
+ private Circle sm42;
+ @FXML
+ private Circle sm43;
+ @FXML
+ private Circle sm44;
+ @FXML
+ private Circle sm51;
+ @FXML
+ private Circle sm52;
+ @FXML
+ private Circle sm53;
+ @FXML
+ private Circle sm54;
+ @FXML
+ private Circle sm61;
+ @FXML
+ private Circle sm62;
+ @FXML
+ private Circle sm63;
+ @FXML
+ private Circle sm64;
+ @FXML
+ private Circle sm71;
+ @FXML
+ private Circle sm72;
+ @FXML
+ private Circle sm73;
+ @FXML
+ private Circle sm74;
+ @FXML
+ private Circle sm81;
+ @FXML
+ private Circle sm82;
+ @FXML
+ private Circle sm83;
+ @FXML
+ private Circle sm84;
@FXML
private Label row1;
@FXML
@@ -132,7 +203,11 @@ public class MEvents implements Initializable {
private Label winsl;
@FXML
private Label losesl;
- private final String[] colors = {"YELLOW", "BLUE", "RED", "GREEN", "BLACK", "BROWN"};
+ @FXML
+ private ImageView winimg;
+ @FXML
+ private ImageView loseimg;
+ private final String[] colors = {"YELLOW", "BLUE", "RED", "GREEN", "ZBLACK", "XBROWN"};
String cc1, cc2, cc3, cc4;
boolean gameFinished = false;
int counter = 1;
@@ -145,8 +220,19 @@ public class MEvents implements Initializable {
str_colors.put("BLUE", Color.BLUE);
str_colors.put("RED", Color.RED);
str_colors.put("GREEN", Color.GREEN);
- str_colors.put("BLACK", Color.BLACK);
- str_colors.put("BROWN", Color.BROWN);
+ str_colors.put("ZBLACK", Color.BLACK);
+ str_colors.put("XBROWN", Color.BROWN);
+ }
+ public static HashMap str_colors_c;
+ static {
+ str_colors_c = new HashMap<>();
+ str_colors_c.put("W", -1);
+ str_colors_c.put("Y", 0);
+ str_colors_c.put("B", 1);
+ str_colors_c.put("R", 2);
+ str_colors_c.put("G", 3);
+ str_colors_c.put("Z", 4);
+ str_colors_c.put("X", 5);
}
public static HashMap str_index;
static {
@@ -158,8 +244,153 @@ public class MEvents implements Initializable {
str_index.put(Color.BLACK, "Z");
str_index.put(Color.BROWN, "X");
}
+ public static HashMap str_color_index;
+ static {
+ str_color_index = new HashMap<>();
+ str_color_index.put(-1, Color.WHITE);
+ str_color_index.put(0, Color.YELLOW);
+ str_color_index.put(1, Color.BLUE);
+ str_color_index.put(2, Color.RED);
+ str_color_index.put(3, Color.GREEN);
+ str_color_index.put(4, Color.BLACK);
+ str_color_index.put(5, Color.BROWN);
+ }
+
+ public static HashMap str_color_string;
+ static {
+ str_color_string = new HashMap<>();
+ str_color_string.put(-1, "W");
+ str_color_string.put(0, "Y");
+ str_color_string.put(1, "B");
+ str_color_string.put(2, "R");
+ str_color_string.put(3, "G");
+ str_color_string.put(4, "Z");
+ str_color_string.put(5, "X");
+ }
+
+ public static HashMap str_color_string_reverse;
+ static {
+ str_color_string_reverse = new HashMap<>();
+ str_color_string_reverse.put("W", -1);
+ str_color_string_reverse.put("Y", 0);
+ str_color_string_reverse.put("B", 1);
+ str_color_string_reverse.put("R", 2);
+ str_color_string_reverse.put("G", 3);
+ str_color_string_reverse.put("Z", 4);
+ str_color_string_reverse.put("X", 5);
+ }
public void startNew() {
counter = 1;
+ currentPos1 = -1;
+ currentPos2 = -1;
+ currentPos3 = -1;
+ currentPos4 = -1;
+ circ11.setOpacity(1);
+ circ12.setOpacity(1);
+ circ13.setOpacity(1);
+ circ14.setOpacity(1);
+ circ21.setOpacity(1);
+ circ22.setOpacity(1);
+ circ23.setOpacity(1);
+ circ24.setOpacity(1);
+ circ31.setOpacity(1);
+ circ32.setOpacity(1);
+ circ33.setOpacity(1);
+ circ34.setOpacity(1);
+ circ41.setOpacity(1);
+ circ42.setOpacity(1);
+ circ43.setOpacity(1);
+ circ44.setOpacity(1);
+ circ51.setOpacity(1);
+ circ52.setOpacity(1);
+ circ53.setOpacity(1);
+ circ54.setOpacity(1);
+ circ61.setOpacity(1);
+ circ62.setOpacity(1);
+ circ63.setOpacity(1);
+ circ64.setOpacity(1);
+ circ71.setOpacity(1);
+ circ72.setOpacity(1);
+ circ73.setOpacity(1);
+ circ74.setOpacity(1);
+ circ81.setOpacity(1);
+ circ82.setOpacity(1);
+ circ83.setOpacity(1);
+ circ84.setOpacity(1);
+ sm11.setOpacity(1);
+ sm12.setOpacity(1);
+ sm13.setOpacity(1);
+ sm14.setOpacity(1);
+ sm21.setOpacity(1);
+ sm22.setOpacity(1);
+ sm23.setOpacity(1);
+ sm24.setOpacity(1);
+ sm31.setOpacity(1);
+ sm32.setOpacity(1);
+ sm33.setOpacity(1);
+ sm34.setOpacity(1);
+ sm41.setOpacity(1);
+ sm42.setOpacity(1);
+ sm43.setOpacity(1);
+ sm44.setOpacity(1);
+ sm51.setOpacity(1);
+ sm52.setOpacity(1);
+ sm53.setOpacity(1);
+ sm54.setOpacity(1);
+ sm61.setOpacity(1);
+ sm62.setOpacity(1);
+ sm63.setOpacity(1);
+ sm64.setOpacity(1);
+ sm71.setOpacity(1);
+ sm72.setOpacity(1);
+ sm73.setOpacity(1);
+ sm74.setOpacity(1);
+ sm81.setOpacity(1);
+ sm82.setOpacity(1);
+ sm83.setOpacity(1);
+ sm84.setOpacity(1);
+ sm11.setFill(Color.WHITE);
+ sm12.setFill(Color.WHITE);
+ sm13.setFill(Color.WHITE);
+ sm14.setFill(Color.WHITE);
+ sm21.setFill(Color.WHITE);
+ sm22.setFill(Color.WHITE);
+ sm23.setFill(Color.WHITE);
+ sm24.setFill(Color.WHITE);
+ sm31.setFill(Color.WHITE);
+ sm32.setFill(Color.WHITE);
+ sm33.setFill(Color.WHITE);
+ sm34.setFill(Color.WHITE);
+ sm41.setFill(Color.WHITE);
+ sm42.setFill(Color.WHITE);
+ sm43.setFill(Color.WHITE);
+ sm44.setFill(Color.WHITE);
+ sm51.setFill(Color.WHITE);
+ sm52.setFill(Color.WHITE);
+ sm53.setFill(Color.WHITE);
+ sm54.setFill(Color.WHITE);
+ sm61.setFill(Color.WHITE);
+ sm62.setFill(Color.WHITE);
+ sm63.setFill(Color.WHITE);
+ sm64.setFill(Color.WHITE);
+ sm71.setFill(Color.WHITE);
+ sm72.setFill(Color.WHITE);
+ sm73.setFill(Color.WHITE);
+ sm74.setFill(Color.WHITE);
+ sm81.setFill(Color.WHITE);
+ sm82.setFill(Color.WHITE);
+ sm83.setFill(Color.WHITE);
+ sm84.setFill(Color.WHITE);
+ row1.setOpacity(1);
+ row2.setOpacity(1);
+ row3.setOpacity(1);
+ row4.setOpacity(1);
+ row5.setOpacity(1);
+ row6.setOpacity(1);
+ row7.setOpacity(1);
+ row8.setOpacity(1);
+ winimg.setOpacity(0);
+ loseimg.setOpacity(0);
gameFinished = false;
maintext.setText("");
SEQ = getWord();
@@ -215,69 +446,289 @@ public class MEvents implements Initializable {
return;
}
if (counter <= 8 && counter > 0) {
- if (!Objects.equals(cc1, null) && !Objects.equals(cc2, null) && !Objects.equals(cc3, null) && !Objects.equals(cc4, null) &&
- !Objects.equals(cc1, "") && !Objects.equals(cc2, "") && !Objects.equals(cc3, "") && !Objects.equals(cc4, "")) {
+ if (!Objects.equals(currentPos1, null) && !Objects.equals(currentPos2, null) && !Objects.equals(currentPos3, null) && !Objects.equals(currentPos4, null) &&
+ !Objects.equals(currentPos1, -1) && !Objects.equals(currentPos2, -1) && !Objects.equals(currentPos3, -1) && !Objects.equals(currentPos4, -1)) {
+ FadeTransition ft1 = new FadeTransition(Duration.millis(500), circ11);
+ FadeTransition ft2 = new FadeTransition(Duration.millis(500), circ12);
+ FadeTransition ft3 = new FadeTransition(Duration.millis(500), circ13);
+ FadeTransition ft4 = new FadeTransition(Duration.millis(500), circ14);
+ FadeTransition ft5 = new FadeTransition(Duration.millis(500), circ21);
+ FadeTransition ft6 = new FadeTransition(Duration.millis(500), circ22);
+ FadeTransition ft7 = new FadeTransition(Duration.millis(500), circ23);
+ FadeTransition ft8 = new FadeTransition(Duration.millis(500), circ24);
+ FadeTransition ft9 = new FadeTransition(Duration.millis(500), circ31);
+ FadeTransition ft10 = new FadeTransition(Duration.millis(500), circ32);
+ FadeTransition ft11 = new FadeTransition(Duration.millis(500), circ33);
+ FadeTransition ft12 = new FadeTransition(Duration.millis(500), circ34);
+ FadeTransition ft13 = new FadeTransition(Duration.millis(500), circ41);
+ FadeTransition ft14 = new FadeTransition(Duration.millis(500), circ42);
+ FadeTransition ft15 = new FadeTransition(Duration.millis(500), circ43);
+ FadeTransition ft16 = new FadeTransition(Duration.millis(500), circ44);
+ FadeTransition ft17 = new FadeTransition(Duration.millis(500), circ51);
+ FadeTransition ft18 = new FadeTransition(Duration.millis(500), circ52);
+ FadeTransition ft19 = new FadeTransition(Duration.millis(500), circ53);
+ FadeTransition ft20 = new FadeTransition(Duration.millis(500), circ54);
+ FadeTransition ft21 = new FadeTransition(Duration.millis(500), circ61);
+ FadeTransition ft22 = new FadeTransition(Duration.millis(500), circ62);
+ FadeTransition ft23 = new FadeTransition(Duration.millis(500), circ63);
+ FadeTransition ft24 = new FadeTransition(Duration.millis(500), circ64);
+ FadeTransition ft25 = new FadeTransition(Duration.millis(500), circ71);
+ FadeTransition ft26 = new FadeTransition(Duration.millis(500), circ72);
+ FadeTransition ft27 = new FadeTransition(Duration.millis(500), circ73);
+ FadeTransition ft28 = new FadeTransition(Duration.millis(500), circ74);
+ FadeTransition ft29 = new FadeTransition(Duration.millis(500), circ81);
+ FadeTransition ft30 = new FadeTransition(Duration.millis(500), circ82);
+ FadeTransition ft31 = new FadeTransition(Duration.millis(500), circ83);
+ FadeTransition ft32 = new FadeTransition(Duration.millis(500), circ84);
+ ft1.setFromValue(1.0);
+ ft1.setToValue(0.3);
+ ft1.setCycleCount(2);
+ ft1.setAutoReverse(true);
+ ft2.setFromValue(1.0);
+ ft2.setToValue(0.3);
+ ft2.setCycleCount(2);
+ ft2.setAutoReverse(true);
+ ft3.setFromValue(1.0);
+ ft3.setToValue(0.3);
+ ft3.setCycleCount(2);
+ ft3.setAutoReverse(true);
+ ft4.setFromValue(1.0);
+ ft4.setToValue(0.3);
+ ft4.setCycleCount(2);
+ ft4.setAutoReverse(true);
+ ft5.setFromValue(1.0);
+ ft5.setToValue(0.3);
+ ft5.setCycleCount(2);
+ ft5.setAutoReverse(true);
+ ft6.setFromValue(1.0);
+ ft6.setToValue(0.3);
+ ft6.setCycleCount(2);
+ ft6.setAutoReverse(true);
+ ft7.setFromValue(1.0);
+ ft7.setToValue(0.3);
+ ft7.setCycleCount(2);
+ ft7.setAutoReverse(true);
+ ft8.setFromValue(1.0);
+ ft8.setToValue(0.3);
+ ft8.setCycleCount(2);
+ ft8.setAutoReverse(true);
+ ft9.setFromValue(1.0);
+ ft9.setToValue(0.3);
+ ft9.setCycleCount(2);
+ ft9.setAutoReverse(true);
+ ft10.setFromValue(1.0);
+ ft10.setToValue(0.3);
+ ft10.setCycleCount(2);
+ ft10.setAutoReverse(true);
+ ft11.setFromValue(1.0);
+ ft11.setToValue(0.3);
+ ft11.setCycleCount(2);
+ ft11.setAutoReverse(true);
+ ft12.setFromValue(1.0);
+ ft12.setToValue(0.3);
+ ft12.setCycleCount(2);
+ ft12.setAutoReverse(true);
+ ft13.setFromValue(1.0);
+ ft13.setToValue(0.3);
+ ft13.setCycleCount(2);
+ ft13.setAutoReverse(true);
+ ft14.setFromValue(1.0);
+ ft14.setToValue(0.3);
+ ft14.setCycleCount(2);
+ ft14.setAutoReverse(true);
+ ft15.setFromValue(1.0);
+ ft15.setToValue(0.3);
+ ft15.setCycleCount(2);
+ ft15.setAutoReverse(true);
+ ft16.setFromValue(1.0);
+ ft16.setToValue(0.3);
+ ft16.setCycleCount(2);
+ ft16.setAutoReverse(true);
+ ft17.setFromValue(1.0);
+ ft17.setToValue(0.3);
+ ft17.setCycleCount(2);
+ ft17.setAutoReverse(true);
+ ft18.setFromValue(1.0);
+ ft18.setToValue(0.3);
+ ft18.setCycleCount(2);
+ ft18.setAutoReverse(true);
+ ft19.setFromValue(1.0);
+ ft19.setToValue(0.3);
+ ft19.setCycleCount(2);
+ ft19.setAutoReverse(true);
+ ft20.setFromValue(1.0);
+ ft20.setToValue(0.3);
+ ft20.setCycleCount(2);
+ ft20.setAutoReverse(true);
+ ft21.setFromValue(1.0);
+ ft21.setToValue(0.3);
+ ft21.setCycleCount(2);
+ ft21.setAutoReverse(true);
+ ft22.setFromValue(1.0);
+ ft22.setToValue(0.3);
+ ft22.setCycleCount(2);
+ ft22.setAutoReverse(true);
+ ft23.setFromValue(1.0);
+ ft23.setToValue(0.3);
+ ft23.setCycleCount(2);
+ ft23.setAutoReverse(true);
+ ft24.setFromValue(1.0);
+ ft24.setToValue(0.3);
+ ft24.setCycleCount(2);
+ ft24.setAutoReverse(true);
+ ft25.setFromValue(1.0);
+ ft25.setToValue(0.3);
+ ft25.setCycleCount(2);
+ ft25.setAutoReverse(true);
+ ft26.setFromValue(1.0);
+ ft26.setToValue(0.3);
+ ft26.setCycleCount(2);
+ ft26.setAutoReverse(true);
+ ft27.setFromValue(1.0);
+ ft27.setToValue(0.3);
+ ft27.setCycleCount(2);
+ ft27.setAutoReverse(true);
+ ft28.setFromValue(1.0);
+ ft28.setToValue(0.3);
+ ft28.setCycleCount(2);
+ ft28.setAutoReverse(true);
+ ft29.setFromValue(1.0);
+ ft29.setToValue(0.3);
+ ft29.setCycleCount(2);
+ ft29.setAutoReverse(true);
+ ft30.setFromValue(1.0);
+ ft30.setToValue(0.3);
+ ft30.setCycleCount(2);
+ ft30.setAutoReverse(true);
+ ft31.setFromValue(1.0);
+ ft31.setToValue(0.3);
+ ft31.setCycleCount(2);
+ ft31.setAutoReverse(true);
+ ft32.setFromValue(1.0);
+ ft32.setToValue(0.3);
+ ft32.setCycleCount(2);
+ ft32.setAutoReverse(true);
tcirc1.setFill(Color.web("#e2ecf5"));
tcirc2.setFill(Color.web("#e2ecf5"));
tcirc3.setFill(Color.web("#e2ecf5"));
tcirc4.setFill(Color.web("#e2ecf5"));
if (counter == 1) {
- circ11.setFill(str_colors.get(cc1));
- circ12.setFill(str_colors.get(cc2));
- circ13.setFill(str_colors.get(cc3));
- circ14.setFill(str_colors.get(cc4));
+ if (currentPos1 == str_colors_c.get(Character.toString(SEQ.charAt(0)))) sm11.setFill(str_color_index.get(currentPos1));
+ if (currentPos2 == str_colors_c.get(Character.toString(SEQ.charAt(1)))) sm12.setFill(str_color_index.get(currentPos2));
+ if (currentPos3 == str_colors_c.get(Character.toString(SEQ.charAt(2)))) sm13.setFill(str_color_index.get(currentPos3));
+ if (currentPos4 == str_colors_c.get(Character.toString(SEQ.charAt(3)))) sm14.setFill(str_color_index.get(currentPos4));
+ circ11.setFill(str_color_index.get(currentPos1));
+ circ12.setFill(str_color_index.get(currentPos2));
+ circ13.setFill(str_color_index.get(currentPos3));
+ circ14.setFill(str_color_index.get(currentPos4));
+ ft1.play();
+ ft2.play();
+ ft3.play();
+ ft4.play();
}
if (counter == 2) {
- circ21.setFill(str_colors.get(cc1));
- circ22.setFill(str_colors.get(cc2));
- circ23.setFill(str_colors.get(cc3));
- circ24.setFill(str_colors.get(cc4));
+ if (currentPos1 == str_colors_c.get(Character.toString(SEQ.charAt(0)))) sm21.setFill(str_color_index.get(currentPos1));
+ if (currentPos2 == str_colors_c.get(Character.toString(SEQ.charAt(1)))) sm22.setFill(str_color_index.get(currentPos2));
+ if (currentPos3 == str_colors_c.get(Character.toString(SEQ.charAt(2)))) sm23.setFill(str_color_index.get(currentPos3));
+ if (currentPos4 == str_colors_c.get(Character.toString(SEQ.charAt(3)))) sm24.setFill(str_color_index.get(currentPos4));
+ circ21.setFill(str_color_index.get(currentPos1));
+ circ22.setFill(str_color_index.get(currentPos2));
+ circ23.setFill(str_color_index.get(currentPos3));
+ circ24.setFill(str_color_index.get(currentPos4));
+ ft5.play();
+ ft6.play();
+ ft7.play();
+ ft8.play();
}
if (counter == 3) {
- circ31.setFill(str_colors.get(cc1));
- circ32.setFill(str_colors.get(cc2));
- circ33.setFill(str_colors.get(cc3));
- circ34.setFill(str_colors.get(cc4));
+ if (currentPos1 == str_colors_c.get(Character.toString(SEQ.charAt(0)))) sm31.setFill(str_color_index.get(currentPos1));
+ if (currentPos2 == str_colors_c.get(Character.toString(SEQ.charAt(1)))) sm32.setFill(str_color_index.get(currentPos2));
+ if (currentPos3 == str_colors_c.get(Character.toString(SEQ.charAt(2)))) sm33.setFill(str_color_index.get(currentPos3));
+ if (currentPos4 == str_colors_c.get(Character.toString(SEQ.charAt(3)))) sm34.setFill(str_color_index.get(currentPos4));
+ circ31.setFill(str_color_index.get(currentPos1));
+ circ32.setFill(str_color_index.get(currentPos2));
+ circ33.setFill(str_color_index.get(currentPos3));
+ circ34.setFill(str_color_index.get(currentPos4));
+ ft9.play();
+ ft10.play();
+ ft11.play();
+ ft12.play();
}
if (counter == 4) {
- circ41.setFill(str_colors.get(cc1));
- circ42.setFill(str_colors.get(cc2));
- circ43.setFill(str_colors.get(cc3));
- circ44.setFill(str_colors.get(cc4));
+ if (currentPos1 == str_colors_c.get(Character.toString(SEQ.charAt(0)))) sm41.setFill(str_color_index.get(currentPos1));
+ if (currentPos2 == str_colors_c.get(Character.toString(SEQ.charAt(1)))) sm42.setFill(str_color_index.get(currentPos2));
+ if (currentPos3 == str_colors_c.get(Character.toString(SEQ.charAt(2)))) sm43.setFill(str_color_index.get(currentPos3));
+ if (currentPos4 == str_colors_c.get(Character.toString(SEQ.charAt(3)))) sm44.setFill(str_color_index.get(currentPos4));
+ circ41.setFill(str_color_index.get(currentPos1));
+ circ42.setFill(str_color_index.get(currentPos2));
+ circ43.setFill(str_color_index.get(currentPos3));
+ circ44.setFill(str_color_index.get(currentPos4));
+ ft13.play();
+ ft14.play();
+ ft15.play();
+ ft16.play();
}
if (counter == 5) {
- circ51.setFill(str_colors.get(cc1));
- circ52.setFill(str_colors.get(cc2));
- circ53.setFill(str_colors.get(cc3));
- circ54.setFill(str_colors.get(cc4));
+ if (currentPos1 == str_colors_c.get(Character.toString(SEQ.charAt(0)))) sm51.setFill(str_color_index.get(currentPos1));
+ if (currentPos2 == str_colors_c.get(Character.toString(SEQ.charAt(1)))) sm52.setFill(str_color_index.get(currentPos2));
+ if (currentPos3 == str_colors_c.get(Character.toString(SEQ.charAt(2)))) sm53.setFill(str_color_index.get(currentPos3));
+ if (currentPos4 == str_colors_c.get(Character.toString(SEQ.charAt(3)))) sm54.setFill(str_color_index.get(currentPos4));
+ circ51.setFill(str_color_index.get(currentPos1));
+ circ52.setFill(str_color_index.get(currentPos2));
+ circ53.setFill(str_color_index.get(currentPos3));
+ circ54.setFill(str_color_index.get(currentPos4));
+ ft17.play();
+ ft18.play();
+ ft19.play();
+ ft20.play();
}
if (counter == 6) {
- circ61.setFill(str_colors.get(cc1));
- circ62.setFill(str_colors.get(cc2));
- circ63.setFill(str_colors.get(cc3));
- circ64.setFill(str_colors.get(cc4));
+ if (currentPos1 == str_colors_c.get(Character.toString(SEQ.charAt(0)))) sm61.setFill(str_color_index.get(currentPos1));
+ if (currentPos2 == str_colors_c.get(Character.toString(SEQ.charAt(1)))) sm62.setFill(str_color_index.get(currentPos2));
+ if (currentPos3 == str_colors_c.get(Character.toString(SEQ.charAt(2)))) sm63.setFill(str_color_index.get(currentPos3));
+ if (currentPos4 == str_colors_c.get(Character.toString(SEQ.charAt(3)))) sm64.setFill(str_color_index.get(currentPos4));
+ circ61.setFill(str_color_index.get(currentPos1));
+ circ62.setFill(str_color_index.get(currentPos2));
+ circ63.setFill(str_color_index.get(currentPos3));
+ circ64.setFill(str_color_index.get(currentPos4));
+ ft21.play();
+ ft22.play();
+ ft23.play();
+ ft24.play();
}
if (counter == 7) {
- circ71.setFill(str_colors.get(cc1));
- circ72.setFill(str_colors.get(cc2));
- circ73.setFill(str_colors.get(cc3));
- circ74.setFill(str_colors.get(cc4));
+ if (currentPos1 == str_colors_c.get(Character.toString(SEQ.charAt(0)))) sm71.setFill(str_color_index.get(currentPos1));
+ if (currentPos2 == str_colors_c.get(Character.toString(SEQ.charAt(1)))) sm72.setFill(str_color_index.get(currentPos2));
+ if (currentPos3 == str_colors_c.get(Character.toString(SEQ.charAt(2)))) sm73.setFill(str_color_index.get(currentPos3));
+ if (currentPos4 == str_colors_c.get(Character.toString(SEQ.charAt(3)))) sm74.setFill(str_color_index.get(currentPos4));
+ circ71.setFill(str_color_index.get(currentPos1));
+ circ72.setFill(str_color_index.get(currentPos2));
+ circ73.setFill(str_color_index.get(currentPos3));
+ circ74.setFill(str_color_index.get(currentPos4));
+ ft25.play();
+ ft26.play();
+ ft27.play();
+ ft28.play();
}
if (counter == 8) {
- circ81.setFill(str_colors.get(cc1));
- circ82.setFill(str_colors.get(cc2));
- circ83.setFill(str_colors.get(cc3));
- circ84.setFill(str_colors.get(cc4));
+ if (currentPos1 == str_colors_c.get(Character.toString(SEQ.charAt(0)))) sm81.setFill(str_color_index.get(currentPos1));
+ if (currentPos2 == str_colors_c.get(Character.toString(SEQ.charAt(1)))) sm82.setFill(str_color_index.get(currentPos2));
+ if (currentPos3 == str_colors_c.get(Character.toString(SEQ.charAt(2)))) sm83.setFill(str_color_index.get(currentPos3));
+ if (currentPos4 == str_colors_c.get(Character.toString(SEQ.charAt(3)))) sm84.setFill(str_color_index.get(currentPos4));
+ circ81.setFill(str_color_index.get(currentPos1));
+ circ82.setFill(str_color_index.get(currentPos2));
+ circ83.setFill(str_color_index.get(currentPos3));
+ circ84.setFill(str_color_index.get(currentPos4));
+ ft29.play();
+ ft30.play();
+ ft31.play();
+ ft32.play();
}
checkColors();
cc1 = "";
cc2 = "";
cc3 = "";
cc4 = "";
- color1.setValue("");
- color2.setValue("");
- color3.setValue("");
- color4.setValue("");
counter++;
tcirc1.setFill(Color.web("#e2ecf5"));
tcirc2.setFill(Color.web("#e2ecf5"));
@@ -287,42 +738,169 @@ public class MEvents implements Initializable {
} else if (counter >= 8) {
counter = -1;
loses++;
+ sm11.setOpacity(0);
+ sm12.setOpacity(0);
+ sm13.setOpacity(0);
+ sm14.setOpacity(0);
+ sm21.setOpacity(0);
+ sm22.setOpacity(0);
+ sm23.setOpacity(0);
+ sm24.setOpacity(0);
+ sm31.setOpacity(0);
+ sm32.setOpacity(0);
+ sm33.setOpacity(0);
+ sm34.setOpacity(0);
+ sm41.setOpacity(0);
+ sm42.setOpacity(0);
+ sm43.setOpacity(0);
+ sm44.setOpacity(0);
+ sm51.setOpacity(0);
+ sm52.setOpacity(0);
+ sm53.setOpacity(0);
+ sm54.setOpacity(0);
+ sm61.setOpacity(0);
+ sm62.setOpacity(0);
+ sm63.setOpacity(0);
+ sm64.setOpacity(0);
+ sm71.setOpacity(0);
+ sm72.setOpacity(0);
+ sm73.setOpacity(0);
+ sm74.setOpacity(0);
+ sm81.setOpacity(0);
+ sm82.setOpacity(0);
+ sm83.setOpacity(0);
+ sm84.setOpacity(0);
+ circ11.setOpacity(0);
+ circ12.setOpacity(0);
+ circ13.setOpacity(0);
+ circ14.setOpacity(0);
+ circ21.setOpacity(0);
+ circ22.setOpacity(0);
+ circ23.setOpacity(0);
+ circ24.setOpacity(0);
+ circ31.setOpacity(0);
+ circ32.setOpacity(0);
+ circ33.setOpacity(0);
+ circ34.setOpacity(0);
+ circ41.setOpacity(0);
+ circ42.setOpacity(0);
+ circ43.setOpacity(0);
+ circ44.setOpacity(0);
+ circ51.setOpacity(0);
+ circ52.setOpacity(0);
+ circ53.setOpacity(0);
+ circ54.setOpacity(0);
+ circ61.setOpacity(0);
+ circ62.setOpacity(0);
+ circ63.setOpacity(0);
+ circ64.setOpacity(0);
+ circ71.setOpacity(0);
+ circ72.setOpacity(0);
+ circ73.setOpacity(0);
+ circ74.setOpacity(0);
+ circ81.setOpacity(0);
+ circ82.setOpacity(0);
+ circ83.setOpacity(0);
+ circ84.setOpacity(0);
+ row1.setOpacity(0);
+ row2.setOpacity(0);
+ row3.setOpacity(0);
+ row4.setOpacity(0);
+ row5.setOpacity(0);
+ row6.setOpacity(0);
+ row7.setOpacity(0);
+ row8.setOpacity(0);
+ loseimg.setOpacity(1);
maintext.setTextFill(Color.RED);
- maintext.setText("YOU LOST :( TO PLAY AGAIN PRESS ENTER...");
+ maintext.setText("TO PLAY AGAIN PRESS ENTER...");
}
}
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
- color1.getItems().addAll(colors);
- color1.setOnAction(this::updateColor1);
- color2.getItems().addAll(colors);
- color2.setOnAction(this::updateColor2);
- color3.getItems().addAll(colors);
- color3.setOnAction(this::updateColor3);
- color4.getItems().addAll(colors);
- color4.setOnAction(this::updateColor4);
+ tcirc1.setOnMouseClicked(event -> {
+ currentPos1++;
+ if (currentPos1 > 5) currentPos1 = 0;
+ tcirc1.setFill(str_color_index.get(currentPos1));
+ System.out.println(currentPos1);
+ });
+ tcirc2.setOnMouseClicked(event -> {
+ currentPos2++;
+ if (currentPos2 > 5) currentPos2 = 0;
+ tcirc2.setFill(str_color_index.get(currentPos2));
+ System.out.println(currentPos2);
+ });
+ tcirc3.setOnMouseClicked(event -> {
+ currentPos3++;
+ if (currentPos3 > 5) currentPos3 = 0;
+ tcirc3.setFill(str_color_index.get(currentPos3));
+ System.out.println(currentPos3);
+ });
+ tcirc4.setOnMouseClicked(event -> {
+ currentPos4++;
+ if (currentPos4 > 5) currentPos4 = 0;
+ tcirc4.setFill(str_color_index.get(currentPos4));
+ System.out.println(currentPos4);
+ });
+ maintext.setTextFill(Color.AQUAMARINE);
+ maintext.setFont(Font.font("Verdana", FontWeight.BOLD, 15));
winsl.setText("Wins: " + wins);
+ winsl.setTextFill(Color.AQUAMARINE);
+ losesl.setTextFill(Color.AQUAMARINE);
+ winsl.setFont(Font.font("Verdana", FontWeight.BOLD, 15));
+ losesl.setFont(Font.font("Verdana", FontWeight.BOLD, 15));
+ row1.setTextFill(Color.AQUAMARINE);
+ row2.setTextFill(Color.AQUAMARINE);
+ row3.setTextFill(Color.AQUAMARINE);
+ row4.setTextFill(Color.AQUAMARINE);
+ row5.setTextFill(Color.AQUAMARINE);
+ row6.setTextFill(Color.AQUAMARINE);
+ row7.setTextFill(Color.AQUAMARINE);
+ row8.setTextFill(Color.AQUAMARINE);
+ row1.setFont(Font.font("Verdana", FontWeight.BOLD, 15));
+ row2.setFont(Font.font("Verdana", FontWeight.BOLD, 15));
+ row3.setFont(Font.font("Verdana", FontWeight.BOLD, 15));
+ row4.setFont(Font.font("Verdana", FontWeight.BOLD, 15));
+ row5.setFont(Font.font("Verdana", FontWeight.BOLD, 15));
+ row6.setFont(Font.font("Verdana", FontWeight.BOLD, 15));
+ row7.setFont(Font.font("Verdana", FontWeight.BOLD, 15));
+ row8.setFont(Font.font("Verdana", FontWeight.BOLD, 15));
+ sm11.setFill(Color.WHITE);
+ sm12.setFill(Color.WHITE);
+ sm13.setFill(Color.WHITE);
+ sm14.setFill(Color.WHITE);
+ sm21.setFill(Color.WHITE);
+ sm22.setFill(Color.WHITE);
+ sm23.setFill(Color.WHITE);
+ sm24.setFill(Color.WHITE);
+ sm31.setFill(Color.WHITE);
+ sm32.setFill(Color.WHITE);
+ sm33.setFill(Color.WHITE);
+ sm34.setFill(Color.WHITE);
+ sm41.setFill(Color.WHITE);
+ sm42.setFill(Color.WHITE);
+ sm43.setFill(Color.WHITE);
+ sm44.setFill(Color.WHITE);
+ sm51.setFill(Color.WHITE);
+ sm52.setFill(Color.WHITE);
+ sm53.setFill(Color.WHITE);
+ sm54.setFill(Color.WHITE);
+ sm61.setFill(Color.WHITE);
+ sm62.setFill(Color.WHITE);
+ sm63.setFill(Color.WHITE);
+ sm64.setFill(Color.WHITE);
+ sm71.setFill(Color.WHITE);
+ sm72.setFill(Color.WHITE);
+ sm73.setFill(Color.WHITE);
+ sm74.setFill(Color.WHITE);
+ sm81.setFill(Color.WHITE);
+ sm82.setFill(Color.WHITE);
+ sm83.setFill(Color.WHITE);
+ sm84.setFill(Color.WHITE);
losesl.setText("Loses: " + loses);
}
- public void updateColor1(ActionEvent e) {
- cc1 = color1.getValue();
- tcirc1.setFill(str_colors.get(cc1));
- }
- public void updateColor2(ActionEvent e) {
- cc2 = color2.getValue();
- tcirc2.setFill(str_colors.get(cc2));
- }
- public void updateColor3(ActionEvent e) {
- cc3 = color3.getValue();
- tcirc3.setFill(str_colors.get(cc3));
- }
- public void updateColor4(ActionEvent e) {
- cc4 = color4.getValue();
- tcirc4.setFill(str_colors.get(cc4));
- }
public void checkColors() {
- String created = str_index.get(str_colors.get(cc1)) + str_index.get(str_colors.get(cc2)) +
- str_index.get(str_colors.get(cc3)) + str_index.get(str_colors.get(cc4));
+ String created = str_color_string.get(currentPos1) + str_color_string.get(currentPos2) +
+ str_color_string.get(currentPos3) + str_color_string.get(currentPos4);
updateGame(created);
}
public void updateGame(String crt) {
@@ -337,10 +915,87 @@ public class MEvents implements Initializable {
if (counter == 6) row6.setText(count + " right");
if (counter == 7) row7.setText(count + " right");
if (counter == 8) row8.setText(count + " right");
+ currentPos1 = -1;
+ currentPos2 = -1;
+ currentPos3 = -1;
+ currentPos4 = -1;
if (count == 4) {
maintext.setTextFill(Color.GREEN);
wins++;
- maintext.setText("YOU WON! TO PLAY AGAIN PRESS ENTER...");
+ row1.setOpacity(0);
+ row2.setOpacity(0);
+ row3.setOpacity(0);
+ row4.setOpacity(0);
+ row5.setOpacity(0);
+ row6.setOpacity(0);
+ row7.setOpacity(0);
+ row8.setOpacity(0);
+ winimg.setOpacity(1);
+ circ11.setOpacity(0);
+ circ12.setOpacity(0);
+ circ13.setOpacity(0);
+ circ14.setOpacity(0);
+ circ21.setOpacity(0);
+ circ22.setOpacity(0);
+ circ23.setOpacity(0);
+ circ24.setOpacity(0);
+ circ31.setOpacity(0);
+ circ32.setOpacity(0);
+ circ33.setOpacity(0);
+ circ34.setOpacity(0);
+ circ41.setOpacity(0);
+ circ42.setOpacity(0);
+ circ43.setOpacity(0);
+ circ44.setOpacity(0);
+ circ51.setOpacity(0);
+ circ52.setOpacity(0);
+ circ53.setOpacity(0);
+ circ54.setOpacity(0);
+ circ61.setOpacity(0);
+ circ62.setOpacity(0);
+ circ63.setOpacity(0);
+ circ64.setOpacity(0);
+ circ71.setOpacity(0);
+ circ72.setOpacity(0);
+ circ73.setOpacity(0);
+ circ74.setOpacity(0);
+ circ81.setOpacity(0);
+ circ82.setOpacity(0);
+ circ83.setOpacity(0);
+ circ84.setOpacity(0);
+ sm11.setOpacity(0);
+ sm12.setOpacity(0);
+ sm13.setOpacity(0);
+ sm14.setOpacity(0);
+ sm21.setOpacity(0);
+ sm22.setOpacity(0);
+ sm23.setOpacity(0);
+ sm24.setOpacity(0);
+ sm31.setOpacity(0);
+ sm32.setOpacity(0);
+ sm33.setOpacity(0);
+ sm34.setOpacity(0);
+ sm41.setOpacity(0);
+ sm42.setOpacity(0);
+ sm43.setOpacity(0);
+ sm44.setOpacity(0);
+ sm51.setOpacity(0);
+ sm52.setOpacity(0);
+ sm53.setOpacity(0);
+ sm54.setOpacity(0);
+ sm61.setOpacity(0);
+ sm62.setOpacity(0);
+ sm63.setOpacity(0);
+ sm64.setOpacity(0);
+ sm71.setOpacity(0);
+ sm72.setOpacity(0);
+ sm73.setOpacity(0);
+ sm74.setOpacity(0);
+ sm81.setOpacity(0);
+ sm82.setOpacity(0);
+ sm83.setOpacity(0);
+ sm84.setOpacity(0);
+ maintext.setText("TO PLAY AGAIN PRESS ENTER...");
counter = -1;
gameFinished = true;
}
diff --git a/src/main/resources/background.jpg b/src/main/resources/background.jpg
new file mode 100644
index 0000000..16152c9
Binary files /dev/null and b/src/main/resources/background.jpg differ
diff --git a/src/main/resources/click.mp3 b/src/main/resources/click.mp3
new file mode 100644
index 0000000..e55445e
Binary files /dev/null and b/src/main/resources/click.mp3 differ
diff --git a/src/main/resources/lose.jpg b/src/main/resources/lose.jpg
new file mode 100644
index 0000000..746f29b
Binary files /dev/null and b/src/main/resources/lose.jpg differ
diff --git a/src/main/resources/main.fxml b/src/main/resources/main.fxml
index dec97b2..045ed06 100644
--- a/src/main/resources/main.fxml
+++ b/src/main/resources/main.fxml
@@ -2,7 +2,6 @@
-
@@ -12,13 +11,8 @@
-
+
-
-
-
-
-
@@ -149,11 +143,7 @@
-
-
-
-
-
diff --git a/src/main/resources/mastermind.png b/src/main/resources/mastermind.png
index 43bad44..469ceb7 100644
Binary files a/src/main/resources/mastermind.png and b/src/main/resources/mastermind.png differ
diff --git a/src/main/resources/win.gif b/src/main/resources/win.gif
new file mode 100644
index 0000000..c82738f
Binary files /dev/null and b/src/main/resources/win.gif differ
diff --git a/src/main/resources/win.jpg b/src/main/resources/win.jpg
new file mode 100644
index 0000000..2f68cdf
Binary files /dev/null and b/src/main/resources/win.jpg differ