diff options
Diffstat (limited to 'Mastermind')
| -rw-r--r-- | Mastermind/Common.java | 26 | ||||
| -rwxr-xr-x | Mastermind/FranekEngine.java | 8 | ||||
| -rw-r--r-- | Mastermind/MiguelEngine.java | 7 | ||||
| -rw-r--r-- | Mastermind/Test.java | 42 |
4 files changed, 61 insertions, 22 deletions
diff --git a/Mastermind/Common.java b/Mastermind/Common.java new file mode 100644 index 0000000..36e7264 --- /dev/null +++ b/Mastermind/Common.java @@ -0,0 +1,26 @@ +package Mastermind; + +class EngineResponse{ + + public int perfect; + public int good_color; + public int wrong; + + public EngineResponse(int perfect, int good_color, int wrong) + { + this.perfect=perfect; + this.good_color=good_color; + this.wrong=wrong; + } + + public String toString () + { + return "perfect: "+perfect+" / good_color: " + good_color + " / wrong: " + wrong; + } + + public boolean isSame (EngineResponse r) + { + return r.perfect == perfect && r.good_color == good_color && r.wrong == wrong; + } + +} diff --git a/Mastermind/FranekEngine.java b/Mastermind/FranekEngine.java index da12227..d78064b 100755 --- a/Mastermind/FranekEngine.java +++ b/Mastermind/FranekEngine.java @@ -1,14 +1,16 @@ package Mastermind;
+
+import Mastermind.EngineResponse;
+
import java.util.Random;
import java.util.Scanner;
public class FranekEngine {
- public static int run (int liczba1, int liczba2, int liczba3, int liczba4,
+ public static EngineResponse run (int liczba1, int liczba2, int liczba3, int liczba4,
int odpowiedz1, int odpowiedz2, int odpowiedz3, int odpowiedz4)
{
-
Scanner wejscie = new Scanner(System.in);
Random losowanie = new Random();
// int liczba1 = losowanie.nextInt(5) + 1;
@@ -152,7 +154,7 @@ public class FranekEngine { if (dobrykolor < 0)
dobrykolor = 0;
- return (dobremiejsce*100+dobrykolor);
+ return new EngineResponse(dobremiejsce, dobrykolor, 4-dobremiejsce-dobrykolor);
/*
// System.out.println(dobremiejsce + " " + dobrykolor);
diff --git a/Mastermind/MiguelEngine.java b/Mastermind/MiguelEngine.java index 9cdc6c6..7695dac 100644 --- a/Mastermind/MiguelEngine.java +++ b/Mastermind/MiguelEngine.java @@ -1,9 +1,12 @@ package Mastermind; + +import Mastermind.EngineResponse; + public class MiguelEngine{ static int M=4; - public static int run (int liczba1, int liczba2, int liczba3, int liczba4, + public static EngineResponse run (int liczba1, int liczba2, int liczba3, int liczba4, int odpowiedz1, int odpowiedz2, int odpowiedz3, int odpowiedz4) { @@ -48,7 +51,7 @@ public class MiguelEngine{ System.out.println ("dupa:"+dupa_nigdzie_nie_pasuje); */ - return (dobry_kolor_i_dobra_pozycja * 100 + dobry_kolor_ale_zla_pozycja); + return new EngineResponse (dobry_kolor_i_dobra_pozycja, dobry_kolor_ale_zla_pozycja, dupa_nigdzie_nie_pasuje); } // funkcja pomocnicza. diff --git a/Mastermind/Test.java b/Mastermind/Test.java index 5d203aa..c6166d9 100644 --- a/Mastermind/Test.java +++ b/Mastermind/Test.java @@ -1,4 +1,6 @@ package Mastermind; + +import Mastermind.EngineResponse; import Mastermind.FranekEngine; import Mastermind.MiguelEngine; @@ -8,32 +10,38 @@ class Test { int good=0; int bad=0; + System.out.println("Test all possible combos"); + for (int c1=1;c1<=6;c1++) for (int c2=1;c2<=6;c2++) for (int c3=1;c3<=6;c3++) for (int c4=1;c4<=6;c4++) { - System.out.println("Test all guesses for code: "+c1+c2+c3+c4); - for (int g1=1;g1<=6;g1++) - for (int g2=1;g2<=6;g2++) - for (int g3=1;g3<=6;g3++) - for (int g4=1;g4<=6;g4++) - { - int fra=FranekEngine.run(c1,c2,c3,c4,g1,g2,g3,g4); - int mig=MiguelEngine.run(c1,c2,c3,c4,g1,g2,g3,g4); - if(fra!=mig) + System.out.println("Test all guesses for code: "+c1+c2+c3+c4); + for (int g1=1;g1<=6;g1++) + for (int g2=1;g2<=6;g2++) + for (int g3=1;g3<=6;g3++) + for (int g4=1;g4<=6;g4++) { - System.out.println("Mismatch on " +c1+c2+c3+c4+ " with guess: "+g1+g2+g3+g4); - System.out.println("FRA: "+fra); - System.out.println("MIG: "+mig); - bad++; - } - else - good++; + EngineResponse fra=FranekEngine.run(c1,c2,c3,c4,g1,g2,g3,g4); + EngineResponse mig=MiguelEngine.run(c1,c2,c3,c4,g1,g2,g3,g4); + if(!fra.isSame(mig)) + { + if(args.length>0 && args[0].equals("--show-mismatch")){ + System.out.println("Mismatch on " +c1+c2+c3+c4+ " with guess: "+g1+g2+g3+g4); + System.out.println("FRA: "+mig.toString()); + System.out.println("MIG: "+fra.toString()); + } + bad++; + } + else + good++; + + } } - } + System.out.println("OK: "+good); System.out.println("MISMATCH: "+bad); } |
