Einarmiger Bandit

Kennold

Grünschnabel
Guten Tag Community,

ich habe das Spiel "Einarmiger Bandit" programmiert und mir liegt folgendes Problem vor,
nach dem compilieren des codes, führt Java Editor mein selbstgeschriebenes Programm nicht aus, dabei
werden mir keine Fehler angezeigt.

Vielleicht findet jemand meinen Fehler im Quellcode, ich wäre euch sehr dankbar.


Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;

public class Bandit extends JFrame implements ActionListener{
  Button btnStart;
  Button btnGewinn;
  Button btnEnde;
 
  TextField tfZahl1;
  TextField tfZahl2;
  TextField tfZahl3;
  TextField tfAusgabe;
 
  Label lbAufforderung;
  Label lbGeldbestandSpieler;
  Label lbGeldbestandBandit;
 
  int geldbestandSpieler=20;
  int geldbestandBandit=100;
 
  public static void main(String args[]) {
    Bandit derBandit;
    derBandit = new Bandit();
  }
 
  public void Bandit(){
    setTitle("E.Bandit");
    setSize(180,150);
    setResizable(false);
    setLayout(new FlowLayout());
   
    lbAufforderung = new Label("Bitte Start-Taste drücken!");
    add(lbAufforderung);
   
    btnStart = new Button(" Start ");
    add(btnStart);
    btnStart.addActionListener(this);
   
    btnGewinn = new Button("   ?   ");
    add(btnStart);
    btnStart.addActionListener(this);
   
    btnEnde = new Button (" Ende ");
    add(btnEnde);
    btnStart.addActionListener(this);
   
    tfZahl1 = new TextField(3);
    add(tfZahl1);
   
    tfZahl2 = new TextField(3);
    add(tfZahl2);
   
    tfZahl3 = new TextField(3);
    add(tfZahl3);
   
    tfAusgabe = new TextField(20);
    add(tfAusgabe);
   
    setVisible(true);
   
    addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        System.exit(0);
      }
    });
  }
  /*public void zufallszahl(int pNeueZahl1,int pNeueZahl2,int pNeueZahl3){
  pNeueZahl1=(int)(Math.random()*10+1);
  pNeueZahl2=(int)(Math.random()*10+1);
  pNeueZahl3=(int)(Math.random()*10+1);
  } */
 
  public void actionPerformed(ActionEvent e){
    int einsatz=0;
    int neueZahl1=0;
    int neueZahl2=0;
    int neueZahl3=0;
    einsatz=Integer.parseInt(tfZahl1.getText());
    //zufallszahl(neueZahl1,neueZahl2,neueZahl3); 
   
    neueZahl1=(int)(Math.random()*10+1);
    neueZahl2=(int)(Math.random()*10+1);
    neueZahl3=(int)(Math.random()*10+1);
   
    if (e.getSource()==btnStart & einsatz<=geldbestandSpieler){
     
      if (neueZahl1==0 && neueZahl1==0 && neueZahl2==0) {
        tfAusgabe.setText("Du hast 4 Euro gewonnen");
        geldbestandBandit=geldbestandBandit-4;
      }
     
      if (neueZahl1==0 & neueZahl2==0 & neueZahl3!=0 || neueZahl1==0 & neueZahl3==0 & neueZahl2!=0 || neueZahl2==0 & neueZahl3==0 & neueZahl1==0) {
        tfAusgabe.setText("Du hast 3 Euro gewonnen");
        geldbestandBandit=geldbestandBandit-3;
        geldbestandSpieler=geldbestandSpieler+3;
      }
     
      if (neueZahl1==0 & neueZahl2!=0 & neueZahl3!=0 || neueZahl1!=0 & neueZahl2==0 & neueZahl3!=0 || neueZahl1!=0 & neueZahl2!=0 & neueZahl3==0 ) {
        tfAusgabe.setText("Du hast 2 Euro gewonnen");
        geldbestandBandit=geldbestandBandit-2;
        geldbestandSpieler=geldbestandSpieler+2;
      }
     
      if (neueZahl1==neueZahl2 & neueZahl1==neueZahl3 & neueZahl1!=0) {
        tfAusgabe.setText("Du hast 3 Euro gewonnen");
        geldbestandBandit=geldbestandBandit-3;
        geldbestandSpieler=geldbestandSpieler+3;
      }
     
      if (neueZahl1==neueZahl2 & neueZahl1!=neueZahl3 || neueZahl1==neueZahl3 & neueZahl1!=neueZahl2 || neueZahl2==neueZahl3 & neueZahl2!=neueZahl1) {
        tfAusgabe.setText("Du hast 1 Euro gewonnen");
        geldbestandBandit=geldbestandBandit-1;
        geldbestandSpieler=geldbestandSpieler+1;
      }
     
      if (neueZahl1!=neueZahl2 & neueZahl1!=neueZahl3 & neueZahl1!=0 & neueZahl2!=0 & neueZahl3!=0) {
        geldbestandBandit=geldbestandBandit+einsatz;
        geldbestandSpieler=geldbestandSpieler-einsatz;
      }
    }
   
    if (e.getSource()==btnGewinn){
      lbGeldbestandSpieler = new Label("Geldbestand Spieler: "+geldbestandSpieler);
      lbGeldbestandBandit = new Label("Geldbestand Automat: "+geldbestandBandit);
    }
   
    if (e.getSource()==btnEnde){
      System.exit(0);
    }
  }
}
 

ComFreek

Mod | @comfreek
Moderator
Hallo,

wenn du keine Fehler angezeigt bekommst, würde ich stark darauf tippen, dass es an deiner IDE liegt. Welche verwendest du? Eclipse, Netbeans etc.?
 

Kennold

Grünschnabel
Daran lag es nicht,
der Fehler lag im Detail

Code:
  public void Bandit(){
    setTitle("E.Bandit");
    setSize(180,150);
    setResizable(false);
    setLayout(new FlowLayout());

das "void" war hier fehl am platz, zudem war der Quellcode an sich ungeschickt programmiert, für interessierte hier ist der fertige und funktionierte Quellcode:

Code:
import java.awt.*;
import java.awt.event.*;
public class Bandit2 extends Frame implements ActionListener{
  Button btnStart;
  Button btnGewinn;
  Button btnEnde;
 
  TextField tfZahl1;
  TextField tfZahl2;
  TextField tfZahl3;
  TextField tfAusgabe;
 
  Label lbAufforderung;
  Label lbGeldbestandSpieler;
  Label lbGeldbestandBandit;
 
  int zahl1=0;
  int zahl2=0;
  int zahl3=0;
 
  int sumGewinne=0;
 
  int geldbestandSpieler=50;
  int geldbestandBandit=50;
 
  int einsatz=0;
 
  public static void main(String args[]) {
    Bandit2 derBandit2;
    derBandit2 = new Bandit2();
  }
 
  public Bandit2(){
    setTitle("E.Bandit");
    setSize(180,150);
    setResizable(false);
    setLayout(new FlowLayout());
    setLocationRelativeTo(getParent());
   
    lbAufforderung = new Label("Bitte Start-Taste drücken!");   
    add(lbAufforderung);
   
    btnStart = new Button(" Start ");
    add(btnStart);
    btnStart.addActionListener(this);
   
    btnGewinn = new Button("   ?   ");
    add(btnGewinn);
    btnGewinn.addActionListener(this);
   
    btnEnde = new Button (" Ende ");
    add(btnEnde);
    btnEnde.addActionListener(this);
   
    tfZahl1 = new TextField(3);
    add(tfZahl1);
   
    tfZahl2 = new TextField(3);
    add(tfZahl2);
   
    tfZahl3 = new TextField(3);
    add(tfZahl3);
   
    tfAusgabe = new TextField(20);
    add(tfAusgabe);                     
   
    lbGeldbestandSpieler = new Label("                               ");
    add(lbGeldbestandSpieler);
   
    lbGeldbestandBandit = new Label("                                    ");
    add(lbGeldbestandBandit);
   
    setVisible(true);
   
    addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        System.exit(0);
      }
    });
  } /*
  public void gedruecktStartTaste(int pZahl1,int pZahl2,int pZahl3){
 
  } */
 
  public void gedruecktInfoTaste(){
    tfAusgabe.setText(" S: "+geldbestandSpieler+" A: "+geldbestandBandit);
  }
  public void gedruecktEndeTaste(){
    System.exit(0);
  }
  public void berechneGewinn(int pZahl1,int pZahl2,int pZahl3){
    pZahl1=(int)(Math.random()*10);
    pZahl2=(int)(Math.random()*10);
    pZahl3=(int)(Math.random()*10);
   
    tfZahl1.setText(""+pZahl1);
    tfZahl2.setText(""+pZahl2);
    tfZahl3.setText(""+pZahl3);
   
    if (pZahl1==0 && pZahl2==0 && pZahl3==0) {
      sumGewinne=sumGewinne+4;
    }
   
    if (pZahl1==0 & pZahl2==0 & pZahl3!=0 || pZahl1==0 & zahl3==0 & pZahl2!=0 || pZahl2==0 & pZahl3==0 & pZahl1==0) {
      sumGewinne=sumGewinne+3;
    }
   
    if (pZahl1==0 & pZahl2!=0 & pZahl3!=0 || pZahl1!=0 & pZahl2==0 & pZahl3!=0 || pZahl1!=0 & pZahl2!=0 & pZahl3==0 ) {
      sumGewinne=sumGewinne+2;
    }
   
    if (pZahl1==pZahl2 & pZahl1==pZahl3 & pZahl1!=0) {
      sumGewinne=sumGewinne+3;
    }
   
    if (pZahl1==pZahl2 & pZahl1!=pZahl3 || pZahl1==pZahl3 & pZahl1!=pZahl2 || pZahl2==pZahl3 & pZahl2!=pZahl1) {
      sumGewinne=sumGewinne+1;
    }
    /*
    if (neueZahl1!=neueZahl2 & neueZahl1!=neueZahl3 & neueZahl1!=0 & neueZahl2!=0 & neueZahl3!=0) {
    sumGewinne=sumGewinne-einsatz;
    } */
   
    switch (sumGewinne) {
      case 1: tfAusgabe.setText("Du hast 1 Euro gewonnen");break;
     
      case 2: tfAusgabe.setText("Du hast 2 Euro gewonnen");
      geldbestandSpieler++;
      geldbestandBandit--;break;
     
      case 3: tfAusgabe.setText("Du hast 3 Euro gewonnen");
      geldbestandSpieler=geldbestandSpieler+2;
      geldbestandBandit=geldbestandBandit-2;break;
     
      case 4: tfAusgabe.setText("Du hast 4 Euro gewonnen");
      geldbestandSpieler=geldbestandSpieler+3;
      geldbestandBandit=geldbestandBandit-3;break;
     
      case 5: tfAusgabe.setText("Du hast 5 Euro gewonnen");
      geldbestandSpieler=geldbestandSpieler+4;
      geldbestandBandit=geldbestandBandit-4;break;
     
      case 6: tfAusgabe.setText("Du hast 6 Euro gewonnen");
      geldbestandSpieler=geldbestandSpieler+5;
      geldbestandBandit=geldbestandBandit-5;break;
     
      case 7: tfAusgabe.setText("Du hast 7 Euro gewonnen");
      geldbestandSpieler=geldbestandSpieler+6;
      geldbestandBandit=geldbestandBandit-6;break;
     
      case 8: tfAusgabe.setText("Du hast 8 Euro gewonnen");
      geldbestandSpieler=geldbestandSpieler+7;
      geldbestandBandit=geldbestandBandit-7;break;
     
      case 9: tfAusgabe.setText("Du hast 9 Euro gewonnen");
      geldbestandSpieler=geldbestandSpieler+8;
      geldbestandBandit=geldbestandBandit-8;break;
     
      case 10: tfAusgabe.setText("Du hast 10 Euro gewonnen");
      geldbestandSpieler=geldbestandSpieler+9;
      geldbestandBandit=geldbestandBandit-9;break;
     
      case 11: tfAusgabe.setText("Du hast 11 Euro gewonnen");
      geldbestandSpieler=geldbestandSpieler+10;
      geldbestandBandit=geldbestandBandit-10;break;
     
      case 12: tfAusgabe.setText("Du hast 12 Euro gewonnen");
      geldbestandSpieler=geldbestandSpieler+11;
      geldbestandBandit=geldbestandBandit-11;break;
     
      case 13: tfAusgabe.setText("Du hast 13 Euro gewonnen");
      geldbestandSpieler=geldbestandSpieler+12;
      geldbestandBandit=geldbestandBandit-12;break;
     
      default: tfAusgabe.setText("Du hast verloren");
      geldbestandSpieler=geldbestandSpieler-einsatz;
      geldbestandBandit=geldbestandBandit+einsatz;
    }
  }
  public void actionPerformed(ActionEvent e){ 
    if (e.getSource()==btnStart) {
      einsatz=Integer.parseInt(tfZahl1.getText());
      if(einsatz<=geldbestandSpieler && geldbestandBandit>=einsatz){
        sumGewinne=0;
        berechneGewinn(zahl1,zahl2,zahl3);
      }
    } 
    if (e.getSource()==btnGewinn) {
      gedruecktInfoTaste();
    }
   
    if (e.getSource()==btnEnde) {
      gedruecktEndeTaste();
    }
  } 
}