problem: wiederholschleife eines kleinen spieles

  • Themenstarter Themenstarter riese
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
R

riese

Gast
hi,

in der schule sollten wir ein kleines spiel mit zufalls zahlen erraten erstellen. so weit so gut, das ist mir auch gelungen.
allerdings würde ich gerne irgendwie eine schleife reinbauen, dass das gabze spiel nicht immer nach einem mal neu gestartet werden muss, sondern, dass ich sagen kann, ob ich weiter machen will oder nicht.

hier erstmal das spielchen:
Code:
import java.util.Random;
import static java.lang.System.out;
import java.util.Scanner;

public class zufallabänderung1 {

  public static void main (String[] args) {

   int x,y, zufall = new Random().nextInt(10)+1;
   out.println("zufallsspiel "+zufall);
   out.println();

   Scanner lies = new Scanner (System.in);
   out.print("Spieler 1: Gebe hier eine Zahl von 1-10 an: ");x=lies.nextInt();
   out.print("Spieler 2: Gebe hier eine Zahl von 1-10 an: ");y=lies.nextInt();
   out.println();

   if (x==zufall) {
     out.println("Spieler 1 hat gewonnen= "+x);
   }
   else {
    out.println("Spieler 1, das war leider die falsche Zahl. Die Zufallszahl war: "+zufall);
   }

   if (y==zufall) {
     out.println("Spieler 2 hat gewonnen= "+y);
   }
   else {
    out.println("Spieler 2, das war leider die falsche Zahl. Die Zufallszahl war: "+zufall);
   }

  }
}

ich habe dann meinen lehrer gefragt, der meinte, dass müsste irgendwie so gehen.
Code:
char ant;
do.......
........
out.print("wollen sie weiterspielen?);
lies.next Char(); 
while (ant="j")

aber leider werde ich daraus nicht ganz schlau. ich habe es mal so probiert, anders konnte ich es mir nicht erklären.
Code:
import java.util.Random;
import static java.lang.System.out;
import java.util.Scanner;
import java.lang.String;

public class zufallabänderung1 {

  public static void main (String[] args) {
   char ant;

   do{
   int x,y, zufall = new Random().nextInt(10)+1;
   out.println("zufallsspiel "+zufall);
   out.println();

   Scanner lies = new Scanner (System.in);
   out.print("Spieler 1: Gebe hier eine Zahl von 1-10 an: ");x=lies.nextInt();
   out.print("Spieler 2: Gebe hier eine Zahl von 1-10 an: ");y=lies.nextInt();
   out.println();

   if (x==zufall) {
     out.println("Spieler 1 hat gewonnen= "+x);
   }
   else {
    out.println("Spieler 1, das war leider die falsche Zahl. Die Zufallszahl war: "+zufall);
   }

   if (y==zufall) {
     out.println("Spieler 2 hat gewonnen= "+y);
   }
   else {
    out.println("Spieler 2, das war leider die falsche Zahl. Die Zufallszahl war: "+zufall);
   }
   
   out.print ("wollen sie weiterspiele?");
   lies.nextChar();
   
    } while (ant="j");

  }
}

leider kommen ein paar fehler, kann mir da vielleicht einer weiterhelfen?
 
Bei Vergleichen schreibt man normalerweise ==, mit Strings klappt das aber nicht, da musst du while(str1.equals(str2)) schreiben.
 
Hi,

erstmal kleiner allgemeiner Hinweis: Klassennamen immer mit GROSSEM Anfangsbuchstaben.

Meines Wissens gibt es in der Klasse SCANNER keine Methode Scanner#nextChar();

So funktioniert es aber:
Code:
import java.util.Random;
import java.util.Scanner;
import java.lang.String;

public class Zufallabaenderung1 {

  public static void main (String[] args) {
   String ant = "j"; //geändert

   do{
   int x,y;
   int zufall = new Random().nextInt(10)+1;
   System.out.println("zufallsspiel "+zufall);
   System.out.println();

   Scanner lies = new Scanner (System.in);
   System.out.print("Spieler 1: Gebe hier eine Zahl von 1-10 an: ");x=lies.nextInt();
   System.out.print("Spieler 2: Gebe hier eine Zahl von 1-10 an: ");y=lies.nextInt();
   System.out.println();

   if (x==zufall) { 
   	System.out.println("Spieler 1 hat gewonnen= "+x); }
   else { 
   	System.out.println("Spieler 1, das war leider die falsche Zahl. Die Zufallszahl war: "+zufall); }
   if (y==zufall) { 
   	System.out.println("Spieler 2 hat gewonnen= "+y); }
   else { 
   	System.out.println("Spieler 2, das war leider die falsche Zahl. Die Zufallszahl war: "+zufall); }
   
   System.out.print ("Wollen sie weiterspielen?");
   ant = lies.next(); //geändert
   } while ((ant.equals("j"))||(ant.equals("J"))); //geändert

  }
}

Ich hab die drei Zeilen, die ich geändert habe, mal markiert. Die restlichen Änderungen sind nur Kosmetk.

Gruß,
Noar
 
vielen dank, noar!
du hast mir sehr geholfen. ich hoffe die kosmetik schaffe ich dann noch selber. ist ja super, da wäre ich so nicht drauf gekommen!!!
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben