Hallo zusammen,
ich habe Aufgabe 2.4 vom Anhang bearbeitet und dabei folgenden Code geschrieben:
Die Konsolenausgabe war:
Eigentlich liegen 5 und 2/3 auf der gleichen Seite und damit dürfte das Guthaben nicht abnehmen. Wieso funktioniert die Logik nicht? Ich finde den Fehler l
Vielen Dank für Eure Hilfe!
Liebe Grüße
ich habe Aufgabe 2.4 vom Anhang bearbeitet und dabei folgenden Code geschrieben:
Java:
//Fehler: z.B. feldziffer=5, Würfelergebnis=3 -> trotzdem 10 verloren
package blatt2_SS16;
import java.util.Scanner;
public class Lustige_Sieben_2_4 extends MiniJava{
public static void main(String[] args) {
//Anlegen der Variablen:
int guthaben=100;
int eingabe=1;
int wurf1, wurf2, summewürfe;
int feldziffer=0;
int einsatz=0, gewinn;
//Ausgabe zum Start des Spiels:
System.out.println("Herzlich willkommen zum Spiel Lustige Sieben!");
System.out.println("Dein aktuelles Guthaben beträgt: " + guthaben);
System.out.println("Klicke 0 zum Beenden des Spiels");
Scanner in=new Scanner(System.in);
//Eigentliches Spiel:
while(eingabe!=0 && guthaben!=0){
//Nutzereingabe:
System.out.println("Gebe die Ziffer des Feldes ein, auf welches du setzen möchtest.");
//Gültigkeit überprüfen:
boolean passt = false ;
while (! passt ) {
feldziffer =in.nextInt();
passt=( feldziffer > 1|| feldziffer <13);
}
System.out.println("Gebe des Betrag deines Guthabens ein, welchen du auf das Feld setzen möchtest.");
//Gültigkeit überprüfen:
passt = false ;
while (! passt ) {
einsatz =in.nextInt();
passt=( einsatz<guthaben);
}
//Würfelwerfen:
wurf1=dice();
wurf2=dice();
summewürfe=wurf1 + wurf2;
//Berechnung des neuen Guthabens:
if(wurf1+wurf2==7&&feldziffer==7){
gewinn=einsatz*3;
}
else if(wurf1+wurf2==feldziffer){
gewinn=einsatz;
}
//linke Längsseite:
else if(//2:
(feldziffer==2 && summewürfe ==(3|4|5|6))
//3:
||(feldziffer==3 && summewürfe ==(2|4|5|6))
//4:
||(feldziffer==4 && summewürfe ==(2|3|5|6))
//5:
||(feldziffer==5 && summewürfe ==(2|3|4|6))
//6:
||(feldziffer==6 && summewürfe ==(2|3|4|5))
){
gewinn=einsatz;
}
//Rechte Längsseite:
else if(//8:
(feldziffer==8 && summewürfe ==(9|10|11|12))
//9:
||(feldziffer==9 && summewürfe ==(8|10|11|12))
//10:
||(feldziffer==10 && summewürfe ==(8|9|11|12))
//11:
||(feldziffer==11 && summewürfe ==(8|9|10|12))
//12:
||(feldziffer==12 && summewürfe ==(8|9|10|11))
){
gewinn=einsatz;
}
else{
gewinn=0;
}
guthaben=guthaben-einsatz+gewinn;
//Ausgabe nach jedem Spielzug:
System.out.println("Das Würfelergebnis ist: " + summewürfe);
System.out.println("Dein aktuelles Guthaben beträgt: " + guthaben);
//To Do: Gewinn/Verlust ausgeben
System.out.println("Klicke 0 zum Beenden des Spiels");
}
}
}
Die Konsolenausgabe war:
Code:
Herzlich willkommen zum Spiel Lustige Sieben!
Dein aktuelles Guthaben beträgt: 100
Klicke 0 zum Beenden des Spiels
Gebe die Ziffer des Feldes ein, auf welches du setzen möchtest.
5
Gebe des Betrag deines Guthabens ein, welchen du auf das Feld setzen möchtest.
10
Das Würfelergebnis ist: 2
Dein aktuelles Guthaben beträgt: 90
Klicke 0 zum Beenden des Spiels
Gebe die Ziffer des Feldes ein, auf welches du setzen möchtest.
5
Gebe des Betrag deines Guthabens ein, welchen du auf das Feld setzen möchtest.
10
Das Würfelergebnis ist: 3
Dein aktuelles Guthaben beträgt: 80
Klicke 0 zum Beenden des Spiels
Gebe die Ziffer des Feldes ein, auf welches du setzen möchtest.
Eigentlich liegen 5 und 2/3 auf der gleichen Seite und damit dürfte das Guthaben nicht abnehmen. Wieso funktioniert die Logik nicht? Ich finde den Fehler l
Vielen Dank für Eure Hilfe!
Liebe Grüße