summaryrefslogtreecommitdiff
path: root/FranekEngine.java
diff options
context:
space:
mode:
authorMiguel <m.i@gmx.at>2021-04-06 12:21:43 +0200
committerMiguel <m.i@gmx.at>2021-04-06 12:21:43 +0200
commit5f1294e89468841f1e1396cb39af873993826cf7 (patch)
tree1b79a0328a4dea3c9c7759dcdba7ad64578ee777 /FranekEngine.java
Initial commit for Mastermind
Diffstat (limited to 'FranekEngine.java')
-rwxr-xr-xFranekEngine.java212
1 files changed, 212 insertions, 0 deletions
diff --git a/FranekEngine.java b/FranekEngine.java
new file mode 100755
index 0000000..d69591b
--- /dev/null
+++ b/FranekEngine.java
@@ -0,0 +1,212 @@
+import java.util.Random;
+import java.util.Scanner;
+
+public class FranekEngine {
+
+ public static void main (String args[])
+ {
+
+ int liczba1=Integer.parseInt(args[0]);
+ int liczba2=Integer.parseInt(args[1]);
+ int liczba3=Integer.parseInt(args[2]);
+ int liczba4=Integer.parseInt(args[3]);
+
+ int odpowiedz1=Integer.parseInt(args[4]);
+ int odpowiedz2=Integer.parseInt(args[5]);
+ int odpowiedz3=Integer.parseInt(args[6]);
+ int odpowiedz4=Integer.parseInt(args[7]);
+
+
+ Scanner wejscie = new Scanner(System.in);
+ Random losowanie = new Random();
+// int liczba1 = losowanie.nextInt(5) + 1;
+// int liczba2 = losowanie.nextInt(5) + 1;
+// int liczba3 = losowanie.nextInt(5) + 1;
+// int liczba4 = losowanie.nextInt(5) + 1;
+
+ // do ustawiania samemu wartości - do testów:
+ /*liczba1 = 1;
+ liczba2 = 1;
+ liczba3 = 3;
+ liczba4 = 3; */
+
+ int kolor1 = 0, kolor2 = 0, czerwoneLiczb = 0, zieloneLiczb = 0, niebieskieLiczb = 0, żółteLiczb = 0, czarneLiczb = 0, białeLiczb = 0;
+ int czerwoneOdp = 0, zieloneOdp = 0, niebieskieOdp = 0, żółteOdp = 0, czarneOdp = 0, białeOdp = 0;
+ int licznik = 0;
+
+ int dobremiejsce = 0;
+ int dobrykolor = 0;
+
+ //ściągawka to testów:
+ // System.out.println(jakiKolor(liczba1) + " " + jakiKolor(liczba2) + " " + jakiKolor(liczba3) + " "
+ // + jakiKolor(liczba4));
+
+ // System.out.println("KOLORY: " + " " + "Czerwony: 1" + " " + "Zielony: 2" + " " + "Niebieski: 3"
+ // + " " + "Żółty: 4" + " " + "Czarny: 5" + " " + "Biały: 6");
+
+
+// do {
+ // System.out.println("Wprowadź cztery kolory (pod jednym odstępie między nimi):");
+ // int odpowiedz1 = wejscie.nextInt();
+// int odpowiedz2 = wejscie.nextInt();
+// int odpowiedz3 = wejscie.nextInt();
+// int odpowiedz4 = wejscie.nextInt();
+
+ if (liczba1 == odpowiedz1)
+ dobremiejsce += 1;
+ else if ((liczba1 == odpowiedz2) || (liczba1 == odpowiedz3) || (liczba1 == odpowiedz4))
+ dobrykolor += 1;
+
+ if (liczba2 == odpowiedz2)
+ dobremiejsce += 1;
+ else if ((liczba2 == odpowiedz1) || (liczba2 == odpowiedz3) || (liczba2 == odpowiedz4))
+ dobrykolor += 1;
+
+ if (liczba3 == odpowiedz3)
+ dobremiejsce += 1;
+ else if ((liczba3 == odpowiedz1) || (liczba3 == odpowiedz2) || (liczba3 == odpowiedz4))
+ dobrykolor += 1;
+
+ if (liczba4 == odpowiedz4)
+ dobremiejsce += 1;
+ else if ((liczba4 == odpowiedz1) || (liczba4 == odpowiedz2) || (liczba4 == odpowiedz3))
+ dobrykolor += 1;
+
+ int[] liczby = new int[4];
+ liczby[0] = liczba1;
+ liczby[1] = liczba2;
+ liczby[2] = liczba3;
+ liczby[3] = liczba4;
+
+ for (int index = 0; index < liczby.length; index++) {
+ kolor1 = liczby[index];
+
+ switch (kolor1) {
+ case 1 :
+ czerwoneLiczb++;
+ break;
+ case 2 :
+ zieloneLiczb++;
+ break;
+ case 3 :
+ niebieskieLiczb++;
+ break;
+ case 4 :
+ żółteLiczb++;
+ break;
+ case 5 :
+ czarneLiczb++;
+ break;
+ case 6 :
+ białeLiczb++;
+ break;
+ }
+ }
+
+ int[] odpowiedzi = new int[4];
+ odpowiedzi[0] = odpowiedz1;
+ odpowiedzi[1] = odpowiedz2;
+ odpowiedzi[2] = odpowiedz3;
+ odpowiedzi[3] = odpowiedz4;
+
+ for (int index = 0; index < odpowiedzi.length; index++) {
+ kolor2 = odpowiedzi[index];
+
+ switch (kolor2) {
+ case 1:
+ czerwoneOdp++;
+ break;
+ case 2:
+ zieloneOdp++;
+ break;
+ case 3:
+ niebieskieOdp++;
+ break;
+ case 4:
+ żółteOdp++;
+ break;
+ case 5:
+ czarneOdp++;
+ break;
+ case 6:
+ białeOdp++;
+ break;
+ }
+ }
+
+ /*System.out.println("Odpowiedzi: " + czerwoneLiczb + " " + zieloneLiczb + " " + niebieskieLiczb + " "
+ + żółteLiczb + " " + czarneLiczb + " " + białeLiczb + " " + czerwoneOdp + " " + zieloneOdp + " "
+ + niebieskieOdp + " " + żółteOdp + " " + czarneOdp + " " + białeOdp);
+
+ System.out.println("Dobry kolor przed: " + dobrykolor); */
+
+ //System.out.println("Dobre miejsce1: " + dobremiejsce + "\n" + "Dobry kolor1: " + dobrykolor);
+ if (( (czerwoneLiczb == 2 && zieloneLiczb == 2) || (czerwoneLiczb == 2 && niebieskieLiczb == 2) || (czerwoneLiczb == 2 && żółteLiczb == 2) || (czerwoneLiczb == 2 && czarneLiczb == 2)
+ || (czerwoneLiczb == 2 && białeLiczb == 2) || (zieloneLiczb == 2 && niebieskieLiczb == 2) || (zieloneLiczb == 2 && żółteLiczb == 2) || (zieloneLiczb == 2 && czarneLiczb == 2 )
+ || (zieloneLiczb == 2 && białeLiczb == 2) || (niebieskieLiczb == 2 && żółteLiczb == 2) || (niebieskieLiczb == 2 && czarneLiczb == 2) || (niebieskieLiczb == 2 && białeLiczb == 2)
+ || (żółteLiczb == 2 && czarneLiczb == 2) || (żółteLiczb == 2 && białeLiczb == 2) || (czarneLiczb == 2 && białeLiczb == 2))
+ && (((dobrykolor == 3) || (dobremiejsce == 1 && dobrykolor == 2)) && !(czerwoneOdp == 3 || zieloneOdp == 3 || niebieskieOdp == 3 || żółteOdp == 3 || czarneOdp == 3 || białeOdp == 3)))
+ dobrykolor -= 1;
+
+ // if (((czerwoneLiczb > 1 && czerwoneLiczb - czerwoneOdp == 1) || (zieloneLiczb > 1 && zieloneLiczb - zieloneOdp == 1) || (niebieskieLiczb > 1 && niebieskieLiczb - niebieskieOdp == 1)
+ // || (żółteLiczb > 1 && żółteLiczb - żółteOdp == 1) || (czarneLiczb > 1 && czarneLiczb - czarneOdp == 1) || (białeLiczb > 1 && białeLiczb - białeOdp == 1)))
+ // dobrykolor -= 1;
+ else if (((czerwoneLiczb - czerwoneOdp == 2 && czerwoneOdp > 0) || (zieloneLiczb - zieloneOdp == 2 && zieloneOdp > 0) || (niebieskieLiczb - niebieskieOdp == 2 && niebieskieOdp > 0))
+ || (żółteLiczb - żółteOdp == 2 && żółteOdp > 0) || (czarneLiczb - czarneOdp == 2 && czarneOdp > 0) || (białeLiczb - białeOdp == 2 && białeOdp > 0))
+ dobrykolor -= 2;
+
+ //System.out.println("Dobre miejsce2: " + dobremiejsce + "\n" + "Dobry kolor2: " + dobrykolor);
+
+ if (( (czerwoneLiczb == 2 && zieloneLiczb == 2) || (czerwoneLiczb == 2 && niebieskieLiczb == 2) || (czerwoneLiczb == 2 && żółteLiczb == 2) || (czerwoneLiczb == 2 && czarneLiczb == 2)
+ || (czerwoneLiczb == 2 && białeLiczb == 2) || (zieloneLiczb == 2 && niebieskieLiczb == 2) || (zieloneLiczb == 2 && żółteLiczb == 2) || (zieloneLiczb == 2 && czarneLiczb == 2 )
+ || (zieloneLiczb == 2 && białeLiczb == 2) || (niebieskieLiczb == 2 && żółteLiczb == 2) || (niebieskieLiczb == 2 && czarneLiczb == 2) || (niebieskieLiczb == 2 && białeLiczb == 2)
+ || (żółteLiczb == 2 && czarneLiczb == 2) || (żółteLiczb == 2 && białeLiczb == 2) || (czarneLiczb == 2 && białeLiczb == 2))
+ && (((dobrykolor == 3) || (dobremiejsce == 1 && dobrykolor == 2)) && !(czerwoneOdp == 3 || niebieskieOdp == 3) || żółteOdp == 3 || czarneOdp == 3 || białeOdp == 3))
+ dobrykolor -= 1;
+
+ if (dobrykolor < 0)
+ dobrykolor = 0;
+
+ System.out.println(dobremiejsce + " " + dobrykolor);
+ if (dobremiejsce == 4) {
+ dobremiejsce = 4;
+// System.out.println("Brawo, wygrałeś!");
+ } else
+ dobremiejsce = 0;
+ dobrykolor = 0;
+
+ czerwoneLiczb = 0; zieloneLiczb = 0; niebieskieLiczb = 0; żółteLiczb = 0; czarneLiczb = 0; białeLiczb = 0;
+ czerwoneOdp = 0; zieloneOdp = 0; niebieskieOdp = 0; żółteOdp = 0; czarneOdp = 0; białeOdp = 0;
+ licznik++;
+ // if (licznik == 8)
+ // System.out.println("Przykro mi - przegrałeś.");
+ // }
+// while (dobremiejsce != 4 && licznik != 8);
+ }
+
+ public static String jakiKolor(int liczba)
+ {
+ String kolor = "";
+ switch (liczba) {
+ case 1 :
+ kolor = "Czerwony";
+ break;
+ case 2 :
+ kolor = "Zielony";
+ break;
+ case 3 :
+ kolor = "Niebieski";
+ break;
+ case 4 :
+ kolor = "Żółty";
+ break;
+ case 5 :
+ kolor = "Czarny";
+ break;
+ case 6 :
+ kolor = "Biały";
+ break;
+ }
+ return kolor;
+ }
+}