summaryrefslogtreecommitdiffstats
path: root/src/de/fhswf/in/inf/java1/aufgabe7
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/fhswf/in/inf/java1/aufgabe7')
-rw-r--r--src/de/fhswf/in/inf/java1/aufgabe7/GleichSpieler.java25
-rw-r--r--src/de/fhswf/in/inf/java1/aufgabe7/Simulation.java84
-rw-r--r--src/de/fhswf/in/inf/java1/aufgabe7/Spiel.java86
-rw-r--r--src/de/fhswf/in/inf/java1/aufgabe7/Spieler.java47
-rw-r--r--src/de/fhswf/in/inf/java1/aufgabe7/WechselSpieler.java22
-rw-r--r--src/de/fhswf/in/inf/java1/aufgabe7/ZufallsSpieler.java52
6 files changed, 0 insertions, 316 deletions
diff --git a/src/de/fhswf/in/inf/java1/aufgabe7/GleichSpieler.java b/src/de/fhswf/in/inf/java1/aufgabe7/GleichSpieler.java
deleted file mode 100644
index f5bf021..0000000
--- a/src/de/fhswf/in/inf/java1/aufgabe7/GleichSpieler.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- *
- */
-package de.fhswf.in.inf.java1.aufgabe7;
-
-/**
- * This player always chooses the same shell.
- *
- * @author $Author: $
- * @version $Revision: $, $Date: $ UTC
- */
-public class GleichSpieler extends Spieler
-{
- /*
- * (non-Javadoc)
- *
- * @see de.fhswf.in.inf.java1.aufgabe7.Spieler#zweiterTipp(int)
- */
- @Override
- public final int zweiterTipp(int leeresHuetchen)
- {
- return getErsterTipp();
- }
-
-}
diff --git a/src/de/fhswf/in/inf/java1/aufgabe7/Simulation.java b/src/de/fhswf/in/inf/java1/aufgabe7/Simulation.java
deleted file mode 100644
index 71e23a0..0000000
--- a/src/de/fhswf/in/inf/java1/aufgabe7/Simulation.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/**
- *
- */
-package de.fhswf.in.inf.java1.aufgabe7;
-
-/**
- * Calculates the the success rate of different players.
- *
- * @author $Author: $
- * @version $Revision: $, $Date: $ UTC
- */
-public final class Simulation
-{
-
- private static final int VERSUCHE = 100000;
-
- /**
- * Prevents instantiation of the utility class.
- *
- */
- private Simulation()
- {
- }
-
- /**
- * Makes anzahl games.
- *
- * @param anzahl
- * How often the game will be run.
- * @return Victory count
- */
- private static int nDurchlaufeAusfuehren(Spiel spiel, Spieler spieler,
- int anzahl)
- {
-
- int erfolge = 0;
- for (int i = 0; i < anzahl; i++)
- {
- if (spiel.spielDurchlauf(spieler))
- {
- erfolge++;
- }
- }
-
- return erfolge;
- }
-
- /**
- * Calculates the success rate of every player.
- *
- * @param erfolg
- * An array with the last game stats.
- */
- private static double wahrscheinlichkeitErrechnen(int erfolge, int versuche)
- {
- return (double) erfolge / versuche;
- }
-
- /**
- * Main method of the package.
- *
- * @param args
- * Command line arguments
- */
- public static void main(String[] args)
- {
-
- Spieler[] spieler = {new GleichSpieler(), new WechselSpieler(),
- new ZufallsSpieler(0.5)};
-
- Spiel spiel = new Spiel();
-
- for (int i = 0; i < spieler.length; i++)
- {
- int spielerGewinne = nDurchlaufeAusfuehren(spiel, spieler[i],
- VERSUCHE);
- double spielerProb = wahrscheinlichkeitErrechnen(spielerGewinne,
- VERSUCHE);
- System.out.printf("%17s war %05.2f%s erfolgreich\n", spieler[i]
- .getClass().getSimpleName(), spielerProb * 100, "%");
- }
- }
-
-}
diff --git a/src/de/fhswf/in/inf/java1/aufgabe7/Spiel.java b/src/de/fhswf/in/inf/java1/aufgabe7/Spiel.java
deleted file mode 100644
index f33e031..0000000
--- a/src/de/fhswf/in/inf/java1/aufgabe7/Spiel.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/**
- *
- */
-package de.fhswf.in.inf.java1.aufgabe7;
-
-import java.util.Random;
-
-/**
- * Simulates a shell game.
- *
- * @author $Author: $
- * @version $Revision: $, $Date: $ UTC
- */
-public class Spiel
-{
- private int nussPlatz = -1;
-
- public static final int MAXHUET = 3;
-
- public static final Random RAND = new Random();
-
- /**
- * Places the pea under a shell.
- *
- */
- private void nussVerstecken()
- {
- nussPlatz = RAND.nextInt(MAXHUET);
- }
-
- /**
- * Returns an empty shell, which the user didn't choose.
- *
- * @param ersterTipp
- * The first choice of the player.
- * @return An empty shell number of the remaining shells
- */
- private int zeigeHuetchen(int ersterTipp)
- {
- if (ersterTipp < 0 || ersterTipp > MAXHUET)
- {
- throw new IllegalArgumentException("Tip outside of boundaries.");
- }
- int erg = -1;
- if (ersterTipp != nussPlatz)
- {
- erg = MAXHUET - nussPlatz - ersterTipp;
- }
- else
- {
- erg = (ersterTipp + RAND.nextInt(MAXHUET - 1)) % MAXHUET;
- }
- return erg;
- }
-
- /**
- * Returns the shell number with the pea.
- *
- * @return The shell number
- */
- private boolean aufloesung(int zweiterTipp)
- {
- return nussPlatz == zweiterTipp;
- }
-
- /**
- * Simulates a complete game.
- *
- * @param spieler
- * The player who plays.
- * @return Boolean, if the player choose correct.
- */
- public final boolean spielDurchlauf(Spieler spieler)
- {
- if (spieler == null)
- {
- throw new IllegalArgumentException("A player hast to play.");
- }
- int tipp = -1;
- nussVerstecken();
- tipp = spieler.ersterTipp();
- tipp = spieler.zweiterTipp(zeigeHuetchen(tipp));
- return aufloesung(tipp);
- }
-
-}
diff --git a/src/de/fhswf/in/inf/java1/aufgabe7/Spieler.java b/src/de/fhswf/in/inf/java1/aufgabe7/Spieler.java
deleted file mode 100644
index 40c7254..0000000
--- a/src/de/fhswf/in/inf/java1/aufgabe7/Spieler.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- *
- */
-package de.fhswf.in.inf.java1.aufgabe7;
-
-/**
- * Represents a player that chooses a shell.
- *
- * @author $Author: $
- * @version $Revision: $, $Date: $ UTC
- */
-public abstract class Spieler
-{
-
- private int ersterTipp = -1;
-
- /**
- * The first shell the player chooses.
- *
- * @return The first guess for a shell
- */
- public final int ersterTipp()
- {
- ersterTipp = Spiel.RAND.nextInt(Spiel.MAXHUET);
- return ersterTipp;
- }
-
- /**
- * Getter for the first choice.
- *
- * @return The first choice
- */
- public final int getErsterTipp()
- {
- return ersterTipp;
- }
-
- /**
- * After the first guess, the player must choose a second shell.
- *
- * @param leeresHuetchen
- * The shell, the game showed as empty
- * @return The second guess for the right shell
- */
- public abstract int zweiterTipp(int leeresHuetchen);
-
-}
diff --git a/src/de/fhswf/in/inf/java1/aufgabe7/WechselSpieler.java b/src/de/fhswf/in/inf/java1/aufgabe7/WechselSpieler.java
deleted file mode 100644
index 5d9b976..0000000
--- a/src/de/fhswf/in/inf/java1/aufgabe7/WechselSpieler.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/**
- *
- */
-package de.fhswf.in.inf.java1.aufgabe7;
-
-/**
- * This player always changes the shell.
- *
- * @author $Author: $
- * @version $Revision: $, $Date: $ UTC
- */
-public class WechselSpieler extends Spieler
-{
- /* (non-Javadoc)
- * @see de.fhswf.in.inf.java1.aufgabe7.Spieler#zweiterTipp(int)
- */
- @Override
- public int zweiterTipp(int leeresHuetchen)
- {
- return Spiel.MAXHUET - getErsterTipp() - leeresHuetchen;
- }
-}
diff --git a/src/de/fhswf/in/inf/java1/aufgabe7/ZufallsSpieler.java b/src/de/fhswf/in/inf/java1/aufgabe7/ZufallsSpieler.java
deleted file mode 100644
index f633d31..0000000
--- a/src/de/fhswf/in/inf/java1/aufgabe7/ZufallsSpieler.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- *
- */
-package de.fhswf.in.inf.java1.aufgabe7;
-
-/**
- * A player that switches strategy with a certain probability.
- *
- * @author $Author: $
- * @version $Revision: $, $Date: $ UTC
- */
-public class ZufallsSpieler extends WechselSpieler
-{
-
- private double wahrscheinlichkeit = 0;
-
- /**
- * Initializes a player which switches strategies.
- *
- * @param wahrscheinlichkeit
- * Probability of switching strategy.
- */
- public ZufallsSpieler(double wahrscheinlichkeit)
- {
- if (wahrscheinlichkeit < 0.0 | wahrscheinlichkeit > 1.0)
- {
- throw new IllegalArgumentException(
- "Only a probability between 0 and 100 is allowed.");
- }
-
- this.wahrscheinlichkeit = wahrscheinlichkeit;
- }
-
- /*
- * (non-Javadoc)
- *
- * @see de.fhswf.in.inf.java1.aufgabe7.WechselSpieler#zweiterTipp(int)
- */
- @Override
- public final int zweiterTipp(int leeresHuetchen)
- {
- if (Spiel.RAND.nextDouble() < wahrscheinlichkeit)
- {
- return getErsterTipp();
- }
- else
- {
- return super.zweiterTipp(leeresHuetchen);
- }
- }
-
-}