From f17569ddc3182a6f136090f58efbfffed1d36544 Mon Sep 17 00:00:00 2001 From: Miguel Date: Tue, 6 Apr 2021 12:47:20 +0200 Subject: re-organzing project --- FranekEngine.java | 206 ------------------------------------------ Mastermind/FranekEngine.java | 207 +++++++++++++++++++++++++++++++++++++++++++ Mastermind/MiguelEngine.java | 63 +++++++++++++ MiguelEngine.java | 62 ------------- run.sh | 6 +- 5 files changed, 273 insertions(+), 271 deletions(-) delete mode 100755 FranekEngine.java create mode 100755 Mastermind/FranekEngine.java create mode 100644 Mastermind/MiguelEngine.java delete mode 100644 MiguelEngine.java diff --git a/FranekEngine.java b/FranekEngine.java deleted file mode 100755 index fffb008..0000000 --- a/FranekEngine.java +++ /dev/null @@ -1,206 +0,0 @@ -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 > 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 || zieloneOdp == 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; - } -} diff --git a/Mastermind/FranekEngine.java b/Mastermind/FranekEngine.java new file mode 100755 index 0000000..d4b9e76 --- /dev/null +++ b/Mastermind/FranekEngine.java @@ -0,0 +1,207 @@ +package Mastermind; +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 > 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 || zieloneOdp == 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; + } +} diff --git a/Mastermind/MiguelEngine.java b/Mastermind/MiguelEngine.java new file mode 100644 index 0000000..544c4c0 --- /dev/null +++ b/Mastermind/MiguelEngine.java @@ -0,0 +1,63 @@ +package Mastermind; +public class MiguelEngine{ + + static int M=4; + + public static void main(String []args){ + + int S[]={Integer.parseInt(args[0]),Integer.parseInt(args[1]),Integer.parseInt(args[2]),Integer.parseInt(args[3])}; // nasz kod + int T[]={Integer.parseInt(args[4]),Integer.parseInt(args[5]),Integer.parseInt(args[6]),Integer.parseInt(args[7])}; // nasz kod + + int dobry_kolor_i_dobra_pozycja=0; + int dobry_kolor_ale_zla_pozycja=0; + int dupa_nigdzie_nie_pasuje=0; + + boolean used[]=new boolean[M+1]; // array pomocniczy Boolow, dlugosci M. + for (int i=0;i sprawa prosta + { + dobry_kolor_i_dobra_pozycja+=1; + used[i]=true; // dodatkowo oznaczymy ze ta pozycja naszego "kolor-kodu" zostala "sonkumowana" + } + } + + for (int i=0;i sprawa prosta - { - dobry_kolor_i_dobra_pozycja+=1; - used[i]=true; // dodatkowo oznaczymy ze ta pozycja naszego "kolor-kodu" zostala "sonkumowana" - } - } - - for (int i=0;i