|
|
neophyte16
|
| Titel: zahlenraten bug |
23.01.2010 21:02 |
|
|
Anmeldungsdatum: 21.04.2009
Beiträge: 33
|
ich hab im unterricht ein zahlen raten spiel gebastelt jetzt hab ich nur ein problem nämlich wenn ich im letzen versuch doch die richtige zahl errate steht da trotzdem das ich verloren habe könnt ihr pls gucken was daran falsch ist
BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); Random r=new Random(); int zufallszahl= r.nextInt(100)+1; int versuche =6; int eingabe=0;
String str; System.out.println("versuchen sie ihr glück geben sie die Zahl ein"); str= input.readLine(); eingabe= Integer.parseInt(str);
while ( versuche >=1 ) { if ( eingabe==zufallszahl ) { System.out.println("***GLÜCKWUNSCH SIE HABEN GEWONNEN***"); break; } if ( eingabe<zufallszahl ) { System.out.println("sie haben noch "+ versuche + " versuche"); System.out.println("höher tippen"); eingabe= Integer.parseInt(input.readLine()); versuche--; if ( versuche==0 ) { System.out.println("sie haben verloren die zu erratene Zahl wäre " + zufallszahl +" gewesen"); break; } } if ( eingabe>zufallszahl ) { System.out.println("sie haben noch "+ versuche + " versuche"); System.out.println("tiefer tippen"); eingabe= Integer.parseInt(input.readLine()); versuche--; if ( versuche==0 ) { System.out.println("sie haben verloren die zu erratene Zahl wäre " + zufallszahl +" gewesen"); break; } } } System.out.println("sie haben " + (7-versuche )+" Versuche gebraucht.");
pls möglichst mit den mitteln wäre echt nett als zusatzaufgabe soll der user bestimmen in welchen bereich sich der zufalls bereich bewegen sollen und wie viele versuche der user hat danke im vorraus für die hilfe
|
 |
|
| |
|
xero
|
| Titel: zahlenraten bug |
24.01.2010 15:52 |
|
|
Anmeldungsdatum: 04.09.2006
Beiträge: 450
 |
Tutorial Autor (?) |
|
Kein Wunder. Beim letzten Versuch ließt du die Zahl ein:
Zitat: eingabe = Integer.parseInt(input.readLine()); setzt dann die Anzahl der Versuche runter:
Zitat: versuche--; und schaust dann gleich, ob die Versuche aufgebracht sind:
Zitat: if (versuche == 0) { Natürlich sind sie das, du hast ja gerade den letzten Versuch mit -- gestrichen ohne dessen Eingabe ausgewertet zu haben.
Ich poste dir gleich noch eine verbesserte Version, damit du siehst, wie man das schöner machen könnte. Hier erstmal die Antwort.
mfg
[Zuletzt bearbeitet: 24.01.2010 15:52]
|
 |
|
| |
|
xero
|
| Titel: zahlenraten bug |
24.01.2010 16:14 |
|
|
Anmeldungsdatum: 04.09.2006
Beiträge: 450
 |
Tutorial Autor (?) |
1 Mitglied findet diesen Beitrag gut
|
Hier die angekündigte schönere Lösung... nicht unbedingt die schönste, aber du wolltest ja "mit den Mitteln".
Zitat: BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); int zufallszahl = new Random().nextInt(100) + 1; int versuche = 0; int maxVersuche = 7; //Gibt die max. Versuche an int eingabe = 0; boolean gewonnen = false;
System.out.println("Versuchen sie ihr Glück geben sie die Zahl ein:");
while (!gewonnen) { System.out.println("Sie haben noch " + (maxVersuche - versuche) + " Versuche."); eingabe = Integer.parseInt(input.readLine());
if (eingabe == zufallszahl) { gewonnen = true; }else if (eingabe < zufallszahl) { System.out.println("Höher tippen..."); }else if (eingabe > zufallszahl) { System.out.println("Tiefer tippen..."); }
versuche++;
if((versuche == maxVersuche)&&(!gewonnen)){ break; }
} //END-WHILE if (gewonnen) { System.out.println("***GLÜCKWUNSCH SIE HABEN GEWONNEN***"); } else { System.out.println("Sie haben verloren die zu erratene Zahl wäre " + zufallszahl + " gewesen."); }
System.out.println("Sie haben " + (versuche) + " Versuche gebraucht.");
mfg
|
 |
|
| |
|
|
|
|
|
|