Roulette für Anfänger

Diskutiere Roulette für Anfänger im Java Basics - Anfänger-Themen Bereich.
T

TresorHeiler773

Hallo Forum Mitglieder anbei die Aufgabenstellung vom Lehrer;

Erstellen Sie ein Programm, das eine einfache variante vom Roulette simuliert.
Der Benutzer soll sich zunächst per Eingabe festlegen, ob er auf eine gerade oder ungerade Zahl tippt.
Liegt der Benutzer mit seiner Auswahl richtig, so soll ihm mitgeteilt werden, dass er gewonnen hat.
Hat er sich falsch entschieden, erscheint eine Meldung, dass er verloren hat. Wird die Zahl 0 geworfen, so bekommt er die Hälfte des Einsatzes zurück
Hinweis: Ein Roulette Tisch hat 37 Fächer. Jedes Fach represäntiert dabei eine Zahl von 0 bis 36

Wo liegt mein Fehler?

Vielen Dank für eure Hilfe =)

Java:
import java.util.Scanner;
class Roulette
{
    public static void main (String [] args)
        {
        int [] pair = {2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36};
        int [] impair = {1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35};
        int [] bank = {0};
        int zufallsZahl;
        int tipp;
        
        System.out.println ("Programmierauftrag 2 - pair ou impair");
        System.out.println ("Gentelman ihr Einsatz bitte! Tippen Sie eine gerade oder ungerade Zahl?");   
        System.out.print ("Gebe deine Zahl ein: ");
        
        zufallsZahl = (int) (Math.random ()* 36 +1);
        Scanner Scanner = new Scanner (System.in);
        tipp = Scanner.nextInt();

        if (tipp <= 36 && tipp >= 0)
        {
            if (tipp == pair) {
                if (pair == zufallsZahl) {
                System.out.println ("Deine Auswahl war richtig, herzlichen Glückwunsch du hast gewonnen :).");   
                }
                else {   
                System.out.println ("Tut mir leid, du hast leider nicht gewonnen.");
                }
                }
            if (tipp == impair) {
                if (impair == zufallsZahl) {
                System.out.println ("Deine Auswahl war richtig, herzlichen Glückwunsch du hast gewonnen :).");   
                }
                else {   
                System.out.println ("Tut mir leid, du hast leider nicht gewonnen.");
                }
                }
            else {   
            System.out.println ("Die Zahl 0, du bekommst deinen halben Einsatz zurück.");
            }
        }
        else
        {
        System.out.println("Sie haben eine ungültige Zahl eingegeben.");
      }
}   
}
 
T

TresorHeiler773

Wo liegt Dein Problem?
es erscheint die Fehlermeldung

Roulette.java:22: error: bad operand types for binary operator '=='
if (tipp == pair) {
^
first type: int
second type: int[]
Roulette.java:23: error: bad operand types for binary operator '=='
if (pair == zufallsZahl) {
^
first type: int[]
second type: int
Roulette.java:30: error: bad operand types for binary operator '=='
if (tipp == impair) {
^
first type: int
second type: int[]
Roulette.java:31: error: bad operand types for binary operator '=='
if (impair == zufallsZahl) {
^
first type: int[]
second type: int
4 errors
 
mihe7

mihe7

Ja, weil Du Zahlen mit Arrays vergleichst. Das funktioniert nicht. Genau genommen brauchst Du für die Aufgabe gar keine Arrays.
 
T

TresorHeiler773

okay danke, ich denke über eine lösung ohne arrays nach. Ansonsten melde ich mich nochmal!
 
mihe7

mihe7

Und lies die Aufgabenstellung nochmal genau... (insbesondere, was die Fragestellung an den Benutzer angeht ;) )
 
T

TresorHeiler773

okay nach zwei Kaffe bin ich endlich wach und hab das ganze überarbeitet und richtig gelesen :D

es ist aber immer noch ein Fehler drinnen das er mir manchmal in der Ausgabe bringt und zwar ließt er das if und das else aus:

Code:
import java.util.Scanner;
import java.util.Random;

class Roulette
{
    public static void main (String [] args)
        {
        System.out.println ("Programmierauftrag 2 - pair ou impair");
        System.out.println ("Gentelman ihr Einsatz bitte!");   
        System.out.print ("Fällt eine Gerade oder eine ungerade Zahl? ");
        
        Random zufall = new Random();
        int zz = zufall.nextInt(36);
        Scanner eingabe = new Scanner (System.in);
        String a = eingabe.nextLine();
    
        if (zz != 0)
        {
            if (a.equals ("gerade") && zz % 2 == 0) {
                System.out.println ("Deine Auswahl war richtig, herzlichen Glückwunsch du hast gewonnen :).");   
            }   
            if (a.equals ("ungerade") && zz % 2 == 1) {
                System.out.println ("Deine Auswahl war richtig, herzlichen Glückwunsch du hast gewonnen :).");   
            }
            else  { System.out.println ("Deine Auswahl war falsch, du hast verloren.");   
            }
        }
        else  { System.out.println ("Die Zahl 0 ist gefallen, du bekommst den halben Einsatz zurück.");   
        }
        }
}
 
J

JustNobody

Das sollte wohl ein if / if else / else werden.

Wenn das erste if bei dir zutrifft, dann macht er es. Danach prüft er das zweite if um dann entweder den if oder den else Zweig auszuführen (das if auf Grund der Bedingung natürlich nicht, denn das % gibt entweder 0 oder 1 zurück)
 
Thema: 

Roulette für Anfänger

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben