HomeArtikelDownloadsForum
PCFreunde.deForumEntwicklungJava
Besucher online: 790
Schnellsuche

Anzeigen

Community

Foren
Java Seite 1/1
zahlenraten bug
AntwortenNeues ThemaZur Themenliste
Seiten:
1
Nachricht
neophyte16
Titel: zahlenraten bug 23.01.2010 21:02
3 Punkte (?)
 
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
Private Nachricht senden  
 
xero
Titel: zahlenraten bug 24.01.2010 15:52
1.953 Punkte (?)
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]
Private Nachricht senden  
 
xero
Titel: zahlenraten bug 24.01.2010 16:14
1.953 Punkte (?)
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
Private Nachricht senden  
 
AntwortenNeues ThemaZur Themenliste
Seiten:
1
Community Login
eMail:
Passwort:
Auto-Login