summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiguel <m.i@gmx.at>2021-04-06 18:11:22 +0200
committerMiguel <m.i@gmx.at>2021-04-06 18:11:22 +0200
commitdacc03b3911bd399150eae728432c7156de73b1c (patch)
tree04fd41e194c07ca267b2124ed6466177051d54cf
parent7ca379453505944c4d4439d974bc35fd4943cac0 (diff)
use common class for EngineResponse
-rw-r--r--Mastermind/Common.java26
-rwxr-xr-xMastermind/FranekEngine.java8
-rw-r--r--Mastermind/MiguelEngine.java7
-rw-r--r--Mastermind/Test.java42
-rw-r--r--clean.sh1
-rw-r--r--run.sh2
6 files changed, 63 insertions, 23 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);
}
diff --git a/clean.sh b/clean.sh
new file mode 100644
index 0000000..2bf92d8
--- /dev/null
+++ b/clean.sh
@@ -0,0 +1 @@
+rm Mastermind/*.class
diff --git a/run.sh b/run.sh
index 546fe49..cdda9c3 100644
--- a/run.sh
+++ b/run.sh
@@ -1,2 +1,2 @@
javac -encoding utf8 Mastermind/*.java
-java Mastermind/Test
+java Mastermind/Test --show-mismatch