diff options
| author | Miguel <m.i@gmx.at> | 2021-04-06 12:47:20 +0200 |
|---|---|---|
| committer | Miguel <m.i@gmx.at> | 2021-04-06 12:47:20 +0200 |
| commit | f17569ddc3182a6f136090f58efbfffed1d36544 (patch) | |
| tree | e58557b76344b6917e281e4f4836be36ce7c9a82 /Mastermind/MiguelEngine.java | |
| parent | 2b803f2ec646547acf7fed96c7023cf882d0e20c (diff) | |
re-organzing project
Diffstat (limited to 'Mastermind/MiguelEngine.java')
| -rw-r--r-- | Mastermind/MiguelEngine.java | 63 |
1 files changed, 63 insertions, 0 deletions
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<M;i++) used[M]=false; // na poczatek ustawiamy wszystkie nasze pozycje na un-used. + + for (int i=0;i<M;i++) // jedzeimy po wszsytkich pozycjach + { + if(T[i]==S[i]) // jak ta pozycja jest idetnyczna w obu sekwenjach -> 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<M;i++) // jedzeimy ponownie po wszsytkich pozycjach + { + if(T[i]==S[i])continue; // jedziemy dalej, bo to juz przeprocesowala pierwsza petla! + + // w przeciwnym razie wolamy funkcje pomicnicza ktora sprawdza czy taki kolor wystepuje na innej pozycji. + int idx=wystepuje_gdzie_indziej(T[i],used,S); + if(idx!=-1) + { + dobry_kolor_ale_zla_pozycja+=1; + used[idx]=true; + continue; + } + + dupa_nigdzie_nie_pasuje+=1; + } + + /* + System.out.println ("dobrze:"+dobry_kolor_i_dobra_pozycja); + System.out.println ("dobry kolor ale zla pozycja:"+dobry_kolor_ale_zla_pozycja); + System.out.println ("dupa:"+dupa_nigdzie_nie_pasuje); + */ + + System.out.println (dobry_kolor_i_dobra_pozycja + " " + dobry_kolor_ale_zla_pozycja); + + } + // funkcja pomocnicza. + static int wystepuje_gdzie_indziej(int color,boolean used[],int S[]) + { + for(int i=0;i<M;i++) + { + if (used[i])continue; // jak juz zostalo przedtem skonsumowane przeskakujemy i patrzymy na kolejne. + if (S[i]==color)return i; // hurra znalezlismy nie-skonsumowna na dowolnej pozycji. + } + return -1; // dupa + } + +} |
