// Raten.java MM 2009 import Tools.IO.*; // Eingaben /** * Ratespiel, Strategietest, Spiel fuer eine Person. * Eine Zahl aus einem wachsenden Zahlenbereich * 1 ... 10 / 100 / 1000 / ... ist zu erraten. * Jeder Versuch wird mit MEHR oder WENIGER * bewertet bis die Zahl gefunden wurde. */ public class Raten { /* ------------------------------------------------- */ // Attribute /** * Maximale Ratezahl. */ private int max = 1; /** * Spielrundenzaehler. */ private int runde; /* ------------------------------------------------- */ // Spielaufbau /** * Spiel starten. */ public void starten() { // Erlaeuterung System.out.println(); erlaeuterung(); System.out.println(); IOTools.readLine( "Weiter (ENTER) "); // Spielstart char weiter = 'j'; do { // Spiel System.out.println(); spielen(); // Auswertung System.out.println(); 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 = "Ratespiel, Strategietest, "; str += "Spiel fuer eine Person.\n\n"; str += "Eine Zahl aus einem wachsenden Zahlenbereich\n"; str += "1 ... 10 / 100 / 1 000 / ... ist zu erraten.\n"; str += "Jeder Versuch wird mit MEHR oder WENIGER bewertet\n"; str += "bis die Zahl gefunden wurde.\n"; System.out.println( str); } /** * Ratebereich festlegen, Wuerfeln, Raten. */ private void spielen() { // Ratebereich, festlegen und ausgeben // Wuerfel, computerZahl wuerfeln int computerZahl; // Spielrunden runde = 0; int rateZahl; do { runde++; // Raten, rateZahl eingeben // Bewertung, Vergleich rateZahl mit computerZahl } while( computerZahl != rateZahl); } /** * Rundenauswertung. */ private void auswertung() { int maxRunden = berechneMaxRunden(); String str = "Richtig!"; str += "\nBenoetigte Versuche: " + runde; str += "\nMaximal notwendige Anzahl: " + maxRunden; System.out.println( str); } /** * Berechne maximal notwendige Rundenzahl. * @returm maximale Rundenzahl */ private int berechneMaxRunden() { int maxRunden; // Berechnen der max. notwendigen Runden maxRunden return maxRunden; } /* ------------------------------------------------- */ // Programm /** * Startet ein Ratespiel. */ public static void main( String[] args) { // Ratespiel erzeugen Raten raten = new Raten(); // Ratespiel starten raten.starten(); } }