boolean Array Problem

H

Hassimi

Mitglied
Zur Erklärung, ich wollte ein Programm machen, welches einem Casinospiel ähnelt. Es Funktioniert alles außer ein Problem.. Das boolean Array wird bei jedem Ausführen resettet. Es soll es aber speichern, ich habe ein Beispiel für den Fehler hinzigefügt.
Code:
import java.util.Random ;
public class NoRiskNoMoney
{  
   private boolean spielFertig;
   private boolean[] merken; 
   private int gewinn;
   private int wurf;
   public  noRiskNoMoney (){
       merken = new boolean[6];   
       spielFertig = false;
       gewinn=10;
   }
   public void zahlenFuellen(){   
      wurf= gibWuerfel();
      if (merken[wurf-1]==true){
          spielFertig = true; 
      }
      merken[wurf-1]=true;
      if(gewinn==10){
          gewinn=gewinn*2;
      } else{
          gewinn=gewinn*3;
      }    
   }
   public int gibWuerfel(){
      return new Random().nextInt(6)+1; 
   }
   public void anzeige(){
      if (merken[0]==true){
         System.out.println ("Zahl 1: [X]");
      } else{
         System.out.println ("Zahl 1: [ ]");
      }
      if (merken[1]==true){
         System.out.println ("Zahl 2: [X]");
      } else{
         System.out.println ("Zahl 2: [ ]");
      }
      if (merken[2]==true){
         System.out.println ("Zahl 3: [X]");
      } else{
         System.out.println ("Zahl 3: [ ]");
      }
      if (merken[3]==true){
         System.out.println ("Zahl 4: [X]");
      } else{
         System.out.println ("Zahl 4: [ ]");
      }
      if (merken[4]==true){
         System.out.println ("Zahl 5: [X]");
      } else{
         System.out.println ("Zahl 5: [ ]");
      }
      if (merken[5]==true){
         System.out.println ("Zahl 6: [X]");
      } else{
         System.out.println ("Zahl 6: [ ]");
      }
   }
   public void gewinn(){
      if(spielFertig==false){
       System.out.println("Du hast im Moment " + gewinn +" Punkte!");
       System.out.println("Traust du dich nocheinmal zu wuerfeln?");
       if (gewinn==4860){
         System.out.println("Respekt! Die Chance für dieses Phänomen ist 0.015%!");
       }
      }
   }
   public void laeuftSpiel(){
      if(spielFertig==true){
        System.out.print("\033[H\033[2J");
        System.out.println("Du hast verloren, du hast,"+ wurf +" zweimal gewuerfelt!");
        System.exit(1);
      }
   }
}
Zum Video, am Anfang soll es so sein, dass bei jedem neuen Ausführen von wuerfeln einmal gewuerfelt wird. Also so wie bei der For-Schleife, nur dass man halt nicht alles auf einmal macht sondern Wurf für Wurf.
 
Tarrew

Tarrew

Top Contributor
Das liegt dann wohl an deinen NRNM-Klassen. WIe sind die denn implementiert bzw. wie rufen die deine "NoRiskNoFun" Klasse auf?

Habe den Code mal minimal angepasst, damit man den auch mit ner vernünftigen IDE aufrufen kann ;)
Java:
import java.util.Random;
import java.util.Scanner;

public class NoRiskNoMoney {
    private boolean spielFertig;
    private boolean[] merken;
    private int gewinn;
    private int wurf;

    public static void main(String[] args) {
        NoRiskNoMoney n = new NoRiskNoMoney();
        Scanner sc = new Scanner(System.in);
        String eingabe;
        do {
            n.zahlenFuellen();
            n.anzeige();

            if (n.spielFertig) {
                n.laeuftSpiel();
            } else {
                n.gewinn();
            }

            eingabe = sc.nextLine();
        } while (eingabe.equalsIgnoreCase("j"));

        System.out.println("Spiel beendet");

    }

    public NoRiskNoMoney() {
        merken = new boolean[6];
        spielFertig = false;
        gewinn = 10;
    }

    public void zahlenFuellen() {
        wurf = gibWuerfel();
        if (merken[wurf - 1] == true) {
            spielFertig = true;
        }
        merken[wurf - 1] = true;
        if (gewinn == 10) {
            gewinn = gewinn * 2;
        } else {
            gewinn = gewinn * 3;
        }
    }

    public int gibWuerfel() {
        return new Random().nextInt(6) + 1;
    }

    public void anzeige() {
        for (int i = 0; i < merken.length; i++) {
            System.out.println("Zahl " + (i + 1) + ": [" + (merken[i] ? "X" : " ") + "]");
        }
    }

    public void gewinn() {
        if (spielFertig == false) {
            System.out.println("Du hast im Moment " + gewinn + " Punkte!");
            System.out.println("Traust du dich nocheinmal zu wuerfeln?");
            if (gewinn == 4860) {
                System.out.println("Respekt! Die Chance für dieses Phänomen ist 0.015%!");
            }
        }
    }

    public void laeuftSpiel() {
        if (spielFertig == true) {
            System.out.print("\033[H\033[2J");
            System.out.println("Du hast verloren, du hast," + wurf + " zweimal gewuerfelt!");
            System.exit(1);
        }
    }
}

Musst halt drauf achten, dass du nur ein Objekt deiner Klasse erstellst und damit immer weiter arbeitest.

Allgemein solltest du den Code vllt. bei Gelegenheit nochmal überarbeiten. Die Methoden sind ziemlich komisch organisiert, die Namen passen nicht, Rückgabewerte anstatt "void" könnten echt helfen und auf Sachen wie "System.exit" solltest du in der Form auch verzichten ;) Aber das wird wohl noch
 
H

Hassimi

Mitglied
Das liegt dann wohl an deinen NRNM-Klassen. WIe sind die denn implementiert bzw. wie rufen die deine "NoRiskNoFun" Klasse auf?
Code:
import hiddenClasses.*;
class NRNM_Programm {
  private NoRiskNoMoney glueck;
  public void wuerfeln() {
    glueck = new NoRiskNoMoney();
  
    glueck.zahlenFuellen();
    glueck.gewinn();
    glueck.anzeige();
    glueck.laeuftSpiel();
  }
}
Code:
class NRNM_Start {
    public static void main(String[] args) {
     NRNM_Programm  np;
     np = new NRNM_Programm ();
     np.wuerfeln();
     }
  }
 
Tarrew

Tarrew

Top Contributor
Du solltest immer das gleiche Objekt verwenden. Also nicht jedes Mal in der wuefeln Methode ein neues Objekt erstellen. Also im ersten Schritt:

Java:
import hiddenClasses.*;
class NRNM_Programm {
  private NoRiskNoMoney glueck = new NoRiskNoMoney();
  public void wuerfeln() {
    glueck.zahlenFuellen();
    glueck.gewinn();
    glueck.anzeige();
    glueck.laeuftSpiel();
  }
}
 
J

Javinner

Top Contributor
Du könntest es auch sehr gut in der Konsole einer IDE simulieren. NetBeans zum Beispiel.
Die Abfragen dann mit der Scanner Klasse..
 
MoxxiManagarm

MoxxiManagarm

Top Contributor
Java:
    public void zahlenFuellen() {
        wurf = gibWuerfel();
        if (merken[wurf - 1] == true) {
            spielFertig = true;
        }
        merken[wurf - 1] = true;
        if (gewinn == 10) {
            gewinn = gewinn * 2;
        } else {
            gewinn = gewinn * 3;
        }
    }

    public int gibWuerfel() {
        return new Random().nextInt(6) + 1;
    }

Nur noch ein kleiner Hinweis von mir. In gibWuerfel() inkrementierst du die Random Zahl um 1 nur um diese in zahlenFuellen() wieder um 1 zu dekrementieren.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Problem mit Methode(Array,Boolean,ForSchleife) Java Basics - Anfänger-Themen 6
kazzam94 Methode soll Array von Boolean zurückgeben Java Basics - Anfänger-Themen 5
Kirby.exe ArrayOutOfBoundsException bei boolean Array Java Basics - Anfänger-Themen 19
I converting boolean Array to String Array Java Basics - Anfänger-Themen 10
P Array Sortieren mit boolean? Java Basics - Anfänger-Themen 33
W In Methode boolean array zurückgeben Java Basics - Anfänger-Themen 3
B Math.random mit Boolean array? Java Basics - Anfänger-Themen 17
O boolean Array Frage! Java Basics - Anfänger-Themen 4
D Boolean Array initialisieren Java Basics - Anfänger-Themen 4
V Methode erstellen für ein Boolean Array Java Basics - Anfänger-Themen 13
E 2 dimensionales Boolean Array Java Basics - Anfänger-Themen 5
W Datentypen Zweidimensionales Boolean Array Java Basics - Anfänger-Themen 13
feardorcha boolean array false - true - Abfrage Java Basics - Anfänger-Themen 10
T Array und Boolean ? Java Basics - Anfänger-Themen 6
B Zweidimensionales Array mit boolean Werten Java Basics - Anfänger-Themen 3
N boolean array hilfe Java Basics - Anfänger-Themen 5
D Ein boolean[] Array größer als 63.000.000 erstellen? trotz -Xms und -Xmx.... Java Basics - Anfänger-Themen 7
L Boolean Array abfrage Java Basics - Anfänger-Themen 7
J Boolean[] teilen Java Basics - Anfänger-Themen 13
S public static boolean Java Basics - Anfänger-Themen 4
R Boolean Methode Rückgabewert if() Java Basics - Anfänger-Themen 1
G Rekursive Methode liefert augenscheinlich keinen boolean-Wert zurück. Java Basics - Anfänger-Themen 4
L Überschriebene Boolean Statements Java Basics - Anfänger-Themen 2
L boolean-Abfrage enumeration Java Basics - Anfänger-Themen 3
A Ausgabe mit boolean Java Basics - Anfänger-Themen 3
R Boolean value ohne Kontrollstrukturen ändern Java Basics - Anfänger-Themen 5
F boolean stellt sich auf true Java Basics - Anfänger-Themen 15
V Boolean Wert nicht richtig erkannt Java Basics - Anfänger-Themen 4
C Ganzzahlige Werte in Boolean ausgeben und überprüfen ob Primzahl oder nicht, wenn es keine Primzahl ist soll es die Primfaktorzerlegung ausgeben Java Basics - Anfänger-Themen 4
C Java Boolean reagiert nicht Java Basics - Anfänger-Themen 18
A Alle true Werte eines boolean Arrays herausfiltern Java Basics - Anfänger-Themen 19
G Ratlosigkeit zur Aufgabe im Anhang (boolean, equals.) Java Basics - Anfänger-Themen 20
F Boolean Methode Wert ausgeben. Java Basics - Anfänger-Themen 2
K Boolean in einer Methode um 2 Objekte zu vergleichen Java Basics - Anfänger-Themen 12
K Boolean in einer erstellten Klasse verwenden Java Basics - Anfänger-Themen 14
X Erste Schritte boolean wert ändert sich nicht? Java Basics - Anfänger-Themen 6
W Problem mit dem Wert von boolean-Variable Java Basics - Anfänger-Themen 3
A Boolean in String Java Basics - Anfänger-Themen 2
S Operatoren Boolean Vergleichsoperator Java Basics - Anfänger-Themen 7
Queiser Super boolean Java Basics - Anfänger-Themen 11
E ISBN Nummer mit boolean Java Basics - Anfänger-Themen 5
Z Boolean Abfrage in einer for each Schleife Java Basics - Anfänger-Themen 2
T Methoden Boolean wird nicht gesetzt Java Basics - Anfänger-Themen 1
S boolean Wert von mehreren int Möglichkeiten abfragen ? Java Basics - Anfänger-Themen 4
J Problem mit Boolean bei Funktion! Java Basics - Anfänger-Themen 5
? Methoden Boolean Wert vergleichen und einlesen Java Basics - Anfänger-Themen 1
M Erste Schritte while boolean=false läuft nur bei true??? Java Basics - Anfänger-Themen 23
M Datentypen Byte, Float und Boolean Java Basics - Anfänger-Themen 13
A Problem beim Deklarieren von einem BOOLEAN Java Basics - Anfänger-Themen 4
W Interpreter-Fehler boolean nur eins darf wahr sein Java Basics - Anfänger-Themen 11
G Wie kann man den Erfolg einer Zuweisung als Boolean Wert verwenden? Java Basics - Anfänger-Themen 12
T Boolean by Reference Java Basics - Anfänger-Themen 6
L Wertebereich von boolean Java Basics - Anfänger-Themen 4
D Erklärung static boolean Java Basics - Anfänger-Themen 6
T Eine String Matrix erstellen die eine boolean Funtion verwendet Java Basics - Anfänger-Themen 10
J Datentypen Boolean Refferenz Objekt Java Basics - Anfänger-Themen 2
A boolean Methode ohne If und else Java Basics - Anfänger-Themen 1
fLooojava Laufender Thread | Boolean ändern Java Basics - Anfänger-Themen 9
T Boolean Missing return Statement?! Java Basics - Anfänger-Themen 2
A Boolean aus dem ActionlListener Java Basics - Anfänger-Themen 1
T hashCode mit boolean Java Basics - Anfänger-Themen 1
T boolean, was passiert hier? Java Basics - Anfänger-Themen 4
M Sind solche boolean Anweisen empfehlenswert? Java Basics - Anfänger-Themen 3
N Boolean Werte - immer "false" Java Basics - Anfänger-Themen 5
J GUI per Boolean steuern Java Basics - Anfänger-Themen 3
F Effizientes Lesen von 65 Datein mit Boolean Werten Java Basics - Anfänger-Themen 6
K Viergewinnt - boolean Problem Java Basics - Anfänger-Themen 2
S Best Practice Boolean mit IF verbinden Java Basics - Anfänger-Themen 7
D Boolean mit String Java Basics - Anfänger-Themen 2
K Methode ohne Rückgabewert in boolean Methode ändern Java Basics - Anfänger-Themen 6
B assertArrayEquals nicht für boolean[]? Java Basics - Anfänger-Themen 2
M !boolean das selbe wie boolean == false? Java Basics - Anfänger-Themen 3
L Boolean Methode wirft Fehler aus Java Basics - Anfänger-Themen 12
M Erste Schritte boolean: ist Zahl Hexadezimal - Lösung verwirrend Java Basics - Anfänger-Themen 6
F Datentypen Frage nach Boolean Java Basics - Anfänger-Themen 11
C Sieb des Eratosthenes ohne boolean Java Basics - Anfänger-Themen 20
B Boolean abfrage Java Basics - Anfänger-Themen 3
L The operator && is undefined for the argument type(s) String, boolean Java Basics - Anfänger-Themen 8
L Methoden Boolean-Methode Java Basics - Anfänger-Themen 16
S Setter Methode von Boolean Java Basics - Anfänger-Themen 11
P Compiler-Fehler Boolean: Missing Return Statement Java Basics - Anfänger-Themen 4
M int & boolean Java Basics - Anfänger-Themen 12
R boolean, if-else Java Basics - Anfänger-Themen 7
J Variablen Boolean true "übersetzen" in String Java Basics - Anfänger-Themen 10
M Meldung "cannot convert flom boolean to boolean[]" Java Basics - Anfänger-Themen 3
S Name eines boolean ausgeben (nicht den Wert) Java Basics - Anfänger-Themen 43
S Variablen Prüfen, ob einer von vielen boolean true ist Java Basics - Anfänger-Themen 8
D boolean te wird nicht verwendet Java Basics - Anfänger-Themen 2
M Bedingte Anweisung mit Boolean Java Basics - Anfänger-Themen 2
C cannot convert from int to boolean Java Basics - Anfänger-Themen 3
T Variablen boolean-wert wird nicht gesetzt Java Basics - Anfänger-Themen 6
A In Methode boolean ändern Java Basics - Anfänger-Themen 2
D Java Einsteiger (boolean, if-else etc.) Java Basics - Anfänger-Themen 7
E Wieso funktioniert Boolean.parseBoolean(s) nicht? Java Basics - Anfänger-Themen 9
M Problem mit boolean. Return nicht erkannt Java Basics - Anfänger-Themen 10
B Ausgabe eines boolean wertes Java Basics - Anfänger-Themen 10
R Switch Abfrage: Found boolean but expected int? Java Basics - Anfänger-Themen 7
A Boolean, Girokonto-Programm Java Basics - Anfänger-Themen 30
R Erste Schritte Arrays vergleichen und boolean Java Basics - Anfänger-Themen 5
P Variablen static final boolean Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Anzeige

Neue Themen


Oben