Hallo Freunde,
ich habe bis Dienstag die Aufgabe ein Projekt zu beenden, das dann bewertet werden soll. Ich bin also etwas unter Zeitdruck, ansonsten würde ich mein möglichstes versuchen es selber herauszufinden. Wie dem auch sei; das Problem ist folgendes: Ich schreibe an einem Rouletteprogramm, dass nur ein paar wesentliche Aufgaben erfüllen sollte: auf Zahlen und Sonderfelder setzen, und dann die Gewinne auszahlen.
Hier das Programm:
Ich habe irgendwie den Verdacht, dass die Variablen nicht richtig zurückgeliefert werden, und ich das ganze Gedöhns mit return(x); nicht richtig verstanden habe.
Könnt ihr mir nen Ansatz geben, wo ich mich hier verirre?
ich habe bis Dienstag die Aufgabe ein Projekt zu beenden, das dann bewertet werden soll. Ich bin also etwas unter Zeitdruck, ansonsten würde ich mein möglichstes versuchen es selber herauszufinden. Wie dem auch sei; das Problem ist folgendes: Ich schreibe an einem Rouletteprogramm, dass nur ein paar wesentliche Aufgaben erfüllen sollte: auf Zahlen und Sonderfelder setzen, und dann die Gewinne auszahlen.
Hier das Programm:
Code:
package meinPaket;
import java.awt.*;
import java.awt.event.*;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.*;
public class basicRoulette extends JFrame implements ActionListener{
//Deklaration der benötigten Variabeln
private int kontostand = 20000;
private int zahlen[] = new int[39];
private int zahlGesetzt;
private int zahl = 0;
private String farbe = new String("Grün");
//Deklaration der Panel
private JPanel zahlenfeld = new JPanel(new GridLayout(3,12,0,0));
private JPanel steuerungPanel = new JPanel(new GridLayout(12,1));
ImagePanel rouletteTisch = new ImagePanel(new ImageIcon("roulette_table.png").getImage());
private static final long serialVersionUID = 1L;
//Deklaration der benötigten Buttons
JButton noirButton = new JButton("");
JButton pairButton = new JButton("");
JButton passeButton = new JButton ("");
JButton rougeButton = new JButton ("");
JButton impairButton = new JButton ("");
JButton manqueButton = new JButton ("");
JButton numberButton[] = new JButton[36];
//Elemente der Steuerung
JLabel wettLabel = new JLabel ("Wieviel möchten sie setzen?");
JLabel kontostandLabel = new JLabel("Ihr aktueller Kontostand beträgt " + kontostand + "€"); //hier unbedingt noch die Variable für den Kontostand eintragen
JRadioButton wetten500 = new JRadioButton("500€",true);
JRadioButton wetten1000 = new JRadioButton("1000€");
JRadioButton wetten5000 = new JRadioButton("5000€");
ButtonGroup bg = new ButtonGroup();
JButton startButton = new JButton("Fertig!");
JLabel zahlLabel = new JLabel("");
public basicRoulette()
{
setTitle("BasicRoulette");
setSize(1000,541);
setResizable(false);
setDefaultCloseOperation(EXIT_ON_CLOSE);
rouletteTisch.setBounds(0,0,700,541);
zahlenfeld.setBounds(80,169,546,204);
zahlenfeld.setOpaque(false);
steuerungPanel.setBounds(700, 50, 270, 500);
//Buttons
noirButton.setBounds(77,33,183,136);
noirButton.setContentAreaFilled(false);
noirButton.setBorderPainted(false);
pairButton.setBounds(258,33,183,136);
pairButton.setContentAreaFilled(false);
pairButton.setBorderPainted(false);
passeButton.setBounds(440,33,183,136);
passeButton.setContentAreaFilled(false);
passeButton.setBorderPainted(false);
rougeButton.setBounds(76,374,183,136);
rougeButton.setContentAreaFilled(false);
rougeButton.setBorderPainted(false);
impairButton.setBounds(258,374,183,136);
impairButton.setContentAreaFilled(false);
impairButton.setBorderPainted(false);
manqueButton.setBounds(441,374,183,136);
manqueButton.setContentAreaFilled(false);
manqueButton.setBorderPainted(false);
rouletteTisch.add(noirButton);
rouletteTisch.add(pairButton);
rouletteTisch.add(passeButton);
rouletteTisch.add(rougeButton);
rouletteTisch.add(impairButton);
rouletteTisch.add(manqueButton);
for(int i=0;i<36; i++)
{
numberButton[i] = new JButton();
numberButton[i].setContentAreaFilled(false);
numberButton[i].setBorderPainted(false);
numberButton[i].addActionListener(this);
zahlenfeld.add(numberButton[i]);
}
bg.add(wetten500);
bg.add(wetten1000);
bg.add(wetten5000);
startButton.addActionListener(this);
steuerungPanel.add(kontostandLabel);
steuerungPanel.add(wettLabel);
steuerungPanel.add(wetten500);
steuerungPanel.add(wetten1000);
steuerungPanel.add(wetten5000);
steuerungPanel.add(startButton);
steuerungPanel.add(zahlLabel);
Container cp = getContentPane();
cp.setLayout(null);
cp.add(zahlenfeld);
cp.add(steuerungPanel);
cp.add(rouletteTisch);
}
public static void main(final String[] args) {
Runnable gui = new Runnable(){
public void run(){
new basicRoulette().setVisible(true);
}
};
SwingUtilities.invokeLater(gui);
}
public void actionPerformed(ActionEvent e) {
//überprüfen, von wo die Eingabe kommt
if(e.getSource()==startButton)
{
zahlErmitteln();
gewinneAuszahlen();
}
for(int i = 0; i<36;i++)
{
if(e.getSource()== numberButton[i])
{
zahlGesetzt = i+1;
zahlSetzen();
}
}
if(e.getSource()==noirButton||e.getSource()==pairButton||e.getSource()==passeButton
||e.getSource()==rougeButton||e.getSource()==impairButton||e.getSource()==manqueButton)
{
}
}
public int zahlSetzen()
{
if(wetten500.isSelected()==true && kontostand >= 500)
{
zahlen[zahlGesetzt] = zahlen[zahlGesetzt] + 500;
kontostand = kontostand - 500;
kontostandLabel.setText("Ihr aktueller Kontostand beträgt " + kontostand + "€");
}
if(wetten1000.isSelected()==true && kontostand >= 1000)
{
zahlen[zahlGesetzt] = zahlen[zahlGesetzt] + 1000;
kontostand = kontostand - 1000;
kontostandLabel.setText("Ihr aktueller Kontostand beträgt " + kontostand + "€");
}
if(wetten5000.isSelected()==true && kontostand >=5000)
{
zahlen[zahlGesetzt] = zahlen[zahlGesetzt] + 5000;
kontostand = kontostand - 5000;
kontostandLabel.setText("Ihr aktueller Kontostand beträgt " + kontostand + "€");
}
else
{
//Fenster geht auf, mit OK weiter, nicht genug Geld...
}
return(zahlen[zahlGesetzt]);
}
public void sonderEinsatz()
{
}
public int gewinneAuszahlen()
{
for(int i=0; i<36; i++)
{
if(zahlen[i] > 0 && i == zahl);
{
kontostand = zahlen[i] * 5;
kontostandLabel.setText("" + kontostand);
}
}
return(kontostand);
}
public int zahlErmitteln()
{
zahl = (int) ((Math.random()*37));
if(zahl == 1 || zahl == 3 || zahl == 5||zahl == 7 || zahl == 9 || zahl == 12||zahl == 14
||zahl == 16 ||zahl == 18||zahl == 19 ||zahl == 21 ||zahl == 23||zahl == 25
||zahl == 27 ||zahl == 30||zahl == 32 ||zahl == 34 ||zahl == 36)
{
farbe = "Rot";
}
else{
if(zahl==0)
{
farbe = "Grün";
}
else
{
farbe = "Schwarz";
}
}
zahlLabel.setText("Die ermittelte Zahl ist " + zahl + ", " + farbe);
return(zahl);
}
}
Ich habe irgendwie den Verdacht, dass die Variablen nicht richtig zurückgeliefert werden, und ich das ganze Gedöhns mit return(x); nicht richtig verstanden habe.
Könnt ihr mir nen Ansatz geben, wo ich mich hier verirre?