0 Daumen
1,1k Aufrufe

Hallo!

Die Frage richtet sich an diejenige, die nicht nur Mathe beherrschen, sondern auch Informatik. Wenn dieses Thema zu weit differenziert ist und in euren Augen nichts mehr mit Mathe am Hut hat, müsst ihr nicht antworten und könnt den Beitrag melden.

Ich habe vor, ein Programm zu programmieren, wo der Computer eine Zahl würfelt und dabei man selbst nur drei Versuche hat, bevor das Spiel vom neuen startet. Das klappt auch wunderbar, Zahlen werden generiert und ich kann diese erraten, während unten Tipps erscheinen, ob man eine größere oder kleinere Zahl eingeben sollte ( if-else clause).

Nun hab ich aber noch die Angabe zu machen, dass man höchstens drei Versuche hat. Wie stelle ich das am besten an ?

   

int Raten = jN_1.getInt();

if (Raten == zahl)  {

jL_1.setText("Richtig");

                    }

else {

        if (Raten > zahl) {

jL_1.setText("kleinerer Wert gesucht!"); }

if (Raten < zahl) {

jL_1.setText("größerer Wert gesucht!");

} // end of if

        } // end of if-else

} // end of if

So siehts aus, es funktioniert auch, nur eben die limitierten Versuche kann ich mit meinem Wissen nicht einstellen.

Hoffe auf Hilfe

Vielen Dank im Voraus an die Computer-Begabten ^^

Luis

von

1 Antwort

0 Daumen
Erstelle dir ein int. Nennen wir diesen vorzugsweise einmal "versuche". Jetzt baue dir um deinen Teil, indem geraten werden soll eine do-while Schleife. Du sollst solange wiederholen, wie dein int Versuche kleiner als 3 ist oder bis deine Zahl erraten werden soll.

Das wäre eine Möglichkeit.
Reicht das als Antwort?

EDIT: Ich glaube für die zweite Bedingung der do-while Schleife solltest du dir einfach noch einen boolean-Wert erzeugen, der den Wert true annimmt nachdem:
  if (Raten == zahl)  {


Das macht es unkomplizierter.
von

Ja perfekt, habe mir jetzt gedacht:

int Versuche = 0;

Dann wird der Knopf gedrückt

jB_Raten .... und so weiter und so fort

if (Raten == zahl)  {

jL_1.setText("Richtig");

}

else {

Versuche ++;

if (Versuche > 5) {" GAME OVER ! "

ginge das auch so ?

Hatte meine Antwort editiert, das hast du bestimmt noch nciht gesehen.

So müsste da nicht funktionieren. Da hast du ja keine Schleife drin. So etwas wie do-while bräuchtest du schon( gibt wahrscheinlich auch noch viele andere Möglichkeiten)

if (Versuche > 5) {" GAME OVER ! "

Sowas kannst du dann nach der do-while Schleife abfragen.

Am besten halt mit dem boolean. (Den würde ich "gewonnen" nennen). Dann kannst du ja einfach abfragen ob der Wert true oder false ist in der if Abfrage.( true erübrigt sich ja, dann bekommt man ja vorher eine meldung)


Übrigens( ich habe es auch falsch gemacht ) man schreibt den ersten Buchstaben bei Variablen normalerweise klein in Java.

Würde dann nicht egal ob man richtig oder falsch liegt nach dem 5 Spiel sozusagen die Angabe Game over kommen ? Das if Raten == zahl wäre dann ja nicht im Zusammenhang und somit wäre das 5 Spiel, wenn man 5 mal richtig getippt hat, trotzdem vorbei.

Ja solange deine Abfrage für das Game Over in der do-while schleife ist, geht das auch.

Es ging mir nur um die Schleife.
Mit dem Weg ,die if-Abfrage in der Schleife zu benutzen, machst du halt jedes mal diese Abfrage. Ist also eine Frage des Speichers,der verbraucht wird.

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage sofort und kostenfrei

x
Made by a lovely community
...