// Bandit.java MM 2009 import Tools.IO.*; //Eingaben /** * Spielautomat: * Der einarmige Bandit, Spiel fuer eine Person. * Anfangkapital: 300 Euro * Drei zufaellige Zahlen 0..9 werden gewuerfelt. * Sind alle drei Zahlen gleich, wird das Vierfache, * sind zwei Zahlen gleich, das Doppelte * des Einsatzes zurückgezahlt. * Sonst wird der Einsatz vom Kapital abgezogen. * Das Spiel endet, falls das Kapital aufgebraucht * wurde bzw. falls es 500 Euro ueberschreitet. */ public class Bandit { /* ------------------------------------------------- */ // Attribute /** * Kapital. */ private int kapital = 300; /** * Spielrundenzaehler. */ private int runde = 0; /* ------------------------------------------------- */ // Spielaufbau /** * Spiel starten. */ public void starten() { // Erlaeuterung System.out.println(); erlaeuterung(); System.out.println(); IOTools.readLine( "Weiter (ENTER) "); // Spielstart char weiter = 'j'; do { System.out.println(); // Spiel spielen(); System.out.println(); // Auswertung auswertung(); // Weiter weiter = IOTools.readChar( "Noch einmal (j/n)? "); } while( weiter == 'j'); // Beenden System.out.println(); System.out.println( "Spiel beendet!"); } /* ------------------------------------------------- */ // Spiel /** * Spielerlaeuterung. */ private void erlaeuterung() { String str = "Der einarmige Bandit, "; str += "Spiel fuer eine Person.\n\n"; str += "Anfangkapital: 300 Euro\n"; str += "Drei zufaellige Zahlen 0..9 werden gewuerfelt.\n"; str += "Sind alle drei Zahlen gleich, wird das Vierfache,\n"; str += "sind zwei Zahlen gleich, das Doppelte "; str += "des Einsatzes zurückgezahlt.\n"; str += "Sonst wird der Einsatz vom Kapital abgezogen.\n"; str += "Das Spiel endet, falls das Kapital aufgebraucht\n"; str += "wurde bzw. falls es 500 Euro ueberschreitet."; System.out.println( str); } /** * Spielen * Einsatz, Wuerfeln, Gewinnausschuettung. */ private void spielen() { // Wuerfel Wuerfel wuerfel = new Wuerfel(); wuerfel.setWuerfel( 0, 9); // Spielen runde = 0; kapital = 300; do { runde++; int einsatz; do { System.out.println // Einsatz ( "Dein Kapital: " + kapital + " Euro!"); einsatz = IOTools.readInteger( "Dein Einsatz: "); } while( kapital < einsatz || einsatz <= 0); kapital -= einsatz; int zahl1 = wuerfel.wuerfeln(); // Zug int zahl2 = wuerfel.wuerfeln(); int zahl3 = wuerfel.wuerfeln(); System.out.println ( zahl1 + " " + zahl2 + " " + zahl3); int f = 1; // Gewinnausschuettung if( zahl1 == zahl2) f++; if( zahl1 == zahl3) f++; if( zahl2 == zahl3) f++; if( f != 1) kapital += f * einsatz; } while( kapital > 0 && kapital < 500); } /** * Spielauswertung, Ermittlung des Gewinners. */ private void auswertung() { String str = "Runde: " + runde + "\n"; if( kapital <= 0) str += "Du bist Pleite!"; if( kapital >= 500) str += "Der Bandit ist Pleite!\n"; System.out.println( str); } /* ------------------------------------------------- */ // Programm /** * Programm, erzeugt und startet einen Spielautomaten. */ public static void main( String[] args) { // Spielautomat erzeugen Bandit bandit = new Bandit(); // Spielautomat starten bandit.starten(); } }