Lösungsvorschlag 3.2. - Aufgabe 2: Unterschied zwischen den Versionen

Aus ComeniusWiki
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „<pre> public void wuerfeln(){ int augen=(int)Math.floor(Math.random()*6+1); int punkte=0; Scanner eingabe = new Scanner (System.in); System.out.p…“)
 
Zeile 1: Zeile 1:
 
<pre>
 
<pre>
 +
import java.util.Scanner;
 +
 +
public class Wuerfel{
 +
 +
int punkte=0;
 +
Scanner eingabe = new Scanner (System.in);
 +
 
public void wuerfeln(){
 
public void wuerfeln(){
 
   int augen=(int)Math.floor(Math.random()*6+1);
 
   int augen=(int)Math.floor(Math.random()*6+1);
  int punkte=0;
 
 
  Scanner eingabe = new Scanner (System.in);
 
 
    
 
    
 
   System.out.print ("Geben Sie Ihren Tipp ab: ");
 
   System.out.print ("Geben Sie Ihren Tipp ab: ");
Zeile 23: Zeile 27:
 
   else if(ein.equals("n")){System.out.println("Sie haben "+punkte+" Punkte erreicht. Bis zum nächsten Mal!");}
 
   else if(ein.equals("n")){System.out.println("Sie haben "+punkte+" Punkte erreicht. Bis zum nächsten Mal!");}
 
    
 
    
 +
}
 +
 
}
 
}
 
</pre>
 
</pre>
  
'''Zusatzfrage:''' Warum funktioniert die Punktezählung nach Abbruch des Spiels nicht? (Eine Lösung werden wir nach dem nächsten Kapitel formulieren können.)
+
'''Hinweis:''' Die Aufgabe muss hier als Klasse umgesetzt werden, da die Variable punkte außerhalb der Methode stehen muss. Andernfalls würde sie bei jedem Methodenaufruf wieder auf 0 gesetzt werden und es wäre keine Ausgabe der Gesamtpunktzahl für mehrere Spiele möglich.

Version vom 28. September 2013, 11:48 Uhr

import java.util.Scanner;

public class Wuerfel{

int punkte=0;
Scanner eingabe = new Scanner (System.in);

public void wuerfeln(){
   int augen=(int)Math.floor(Math.random()*6+1);
   
   System.out.print ("Geben Sie Ihren Tipp ab: ");
   int tipp = eingabe.nextInt();
   
   if (tipp<1||tipp>6){System.out.println("Fehlerhafte Eingabe!"); wuerfeln();}
   else if(tipp==augen){System.out.println("Volltreffer!");punkte=punkte+3;}
   else if (tipp==augen+1||tipp==augen-1){System.out.println("Knapp daneben!"); punkte=punkte+1;}
   else {System.out.println("Daneben!");}
   
   System.out.println();
   System.out.println("Wollen Sie noch einmal spielen? (j/n)");
   String ein=eingabe.next();
   System.out.println();
   
   if(!ein.equals("j")&&!ein.equals("n")){System.out.println("Wollen Sie noch einmal spielen? (j/n)"); ein=eingabe.next();}
   else if(ein.equals("j")){wuerfeln();}
   else if(ein.equals("n")){System.out.println("Sie haben "+punkte+" Punkte erreicht. Bis zum nächsten Mal!");}
   
}

}

Hinweis: Die Aufgabe muss hier als Klasse umgesetzt werden, da die Variable punkte außerhalb der Methode stehen muss. Andernfalls würde sie bei jedem Methodenaufruf wieder auf 0 gesetzt werden und es wäre keine Ausgabe der Gesamtpunktzahl für mehrere Spiele möglich.