summaryrefslogtreecommitdiff
path: root/Mastermind
diff options
context:
space:
mode:
Diffstat (limited to 'Mastermind')
-rw-r--r--Mastermind/Common.java26
-rwxr-xr-xMastermind/FranekEngine.java8
-rw-r--r--Mastermind/MiguelEngine.java7
-rw-r--r--Mastermind/Test.java42
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);
}