Hallo zusammen.
Ich will ein kleines Spiel programmieren aber es tut nicht was es soll.
Hier mal der Quellcode:
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JLabel;
public class Spiel extends JApplet implements ActionListener
{
JButton button1; // button deklariert.
JButton button2;
JLabel ausgabe;
JLabel ausgabe2;
JLabel ausgabe3;
public void init()
{
setLayout (new FlowLayout());
button1 = new JButton(" Noch eine Karte "); // button erschaffen
button1.addActionListener(this);
button1.setBackground(Color.white); // Background = Hintergrund.
button1.setForeground(Color.black); // Foreground = Schrift.
add(button1); // button in das fenster eingefügt
button2 = new JButton("Keine Karte mehr");
button2.addActionListener(this);
button2.setBackground(Color.white); // Background = Hintergrund.
button2.setForeground(Color.black); // Foreground = Schrift.
add(button2);
ausgabe = new JLabel();
add(ausgabe);
ausgabe2 = new JLabel();
add(ausgabe2);
ausgabe3 = new JLabel();
add(ausgabe3);
}
public void actionPerformed (ActionEvent arg0)
{
int iSumme=0;
int iKarte;
double dZahl;
double dZahl2;
int iZahl;
int iZahl2;
int iGuthaben = 100;
int iGuthabenaenderung = 0;
if (arg0.getSource() == button1) // wurde button1 gedrückt ???
{
dZahl = Math.random() * 10 + 1; // zufallszahl
iZahl = (int)Math.round(dZahl); // erzeugen
iKarte = iZahl;
iSumme = iSumme + iKarte;
if (iZahl == 10)
{
dZahl2 = Math.random() * 2 + 1; // zufallszahl
iZahl2 = (int)Math.round(dZahl); // erzeugen
}
ausgabe.setText("Deine neue Karte hat den Zahlenwert " +iZahl+ " Der Gesammtwert deiner Karten beträgt " +iSumme+ " .");
}
if (arg0.getSource() == button2)
{
ausgabe.setText("Der Gesammtwert deiner Karten ist " +iSumme+ ".");
ausgabe2.setText("Dein Guthaben hat sich um " +iGuthabenaenderung+ " Euro geändert .");
ausgabe3.setText("Dein Guthaben beträgt jetzt " +iGuthaben+ " Euro.");
}
}
}
Ich bin mir zimlich sicher das die ganze Sache daran scheitert, das das Problem das es mir bei Button 2 eine 0 ausgibt daran liegt das der Wert für iSumme nur innerhalb der Klammer ist und auch nur innerhalb der If-Bedingung nen Wert hat (Auser 0 was es ja am Anfang zugewießen bekommt).
Warum sich die Gesammtzahl bei einem 2. klicken auf Button 1 nicht erhöht ist mir jedoch gänzlich unklar.
Es wäre nett wenn mir jemand helfen könnte, und sry weil das Problemchen wohl zimlich leicht zu lösen ist aber ich hab von java echt kaum ne Ahnung, habe ganz frisch damit angefangen.
Danke für eure Antworten schonmal im Vorraus, ach und schreibt mir pls den Quellcode für das hin was ich ändern muss weil das ja das Problem is was ich theoretisch ändern müsste weiß ich aber nicht wie :noe:
Ich will ein kleines Spiel programmieren aber es tut nicht was es soll.
Hier mal der Quellcode:
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JLabel;
public class Spiel extends JApplet implements ActionListener
{
JButton button1; // button deklariert.
JButton button2;
JLabel ausgabe;
JLabel ausgabe2;
JLabel ausgabe3;
public void init()
{
setLayout (new FlowLayout());
button1 = new JButton(" Noch eine Karte "); // button erschaffen
button1.addActionListener(this);
button1.setBackground(Color.white); // Background = Hintergrund.
button1.setForeground(Color.black); // Foreground = Schrift.
add(button1); // button in das fenster eingefügt
button2 = new JButton("Keine Karte mehr");
button2.addActionListener(this);
button2.setBackground(Color.white); // Background = Hintergrund.
button2.setForeground(Color.black); // Foreground = Schrift.
add(button2);
ausgabe = new JLabel();
add(ausgabe);
ausgabe2 = new JLabel();
add(ausgabe2);
ausgabe3 = new JLabel();
add(ausgabe3);
}
public void actionPerformed (ActionEvent arg0)
{
int iSumme=0;
int iKarte;
double dZahl;
double dZahl2;
int iZahl;
int iZahl2;
int iGuthaben = 100;
int iGuthabenaenderung = 0;
if (arg0.getSource() == button1) // wurde button1 gedrückt ???
{
dZahl = Math.random() * 10 + 1; // zufallszahl
iZahl = (int)Math.round(dZahl); // erzeugen
iKarte = iZahl;
iSumme = iSumme + iKarte;
if (iZahl == 10)
{
dZahl2 = Math.random() * 2 + 1; // zufallszahl
iZahl2 = (int)Math.round(dZahl); // erzeugen
}
ausgabe.setText("Deine neue Karte hat den Zahlenwert " +iZahl+ " Der Gesammtwert deiner Karten beträgt " +iSumme+ " .");
}
if (arg0.getSource() == button2)
{
ausgabe.setText("Der Gesammtwert deiner Karten ist " +iSumme+ ".");
ausgabe2.setText("Dein Guthaben hat sich um " +iGuthabenaenderung+ " Euro geändert .");
ausgabe3.setText("Dein Guthaben beträgt jetzt " +iGuthaben+ " Euro.");
}
}
}
Ich bin mir zimlich sicher das die ganze Sache daran scheitert, das das Problem das es mir bei Button 2 eine 0 ausgibt daran liegt das der Wert für iSumme nur innerhalb der Klammer ist und auch nur innerhalb der If-Bedingung nen Wert hat (Auser 0 was es ja am Anfang zugewießen bekommt).
Warum sich die Gesammtzahl bei einem 2. klicken auf Button 1 nicht erhöht ist mir jedoch gänzlich unklar.
Es wäre nett wenn mir jemand helfen könnte, und sry weil das Problemchen wohl zimlich leicht zu lösen ist aber ich hab von java echt kaum ne Ahnung, habe ganz frisch damit angefangen.
Danke für eure Antworten schonmal im Vorraus, ach und schreibt mir pls den Quellcode für das hin was ich ändern muss weil das ja das Problem is was ich theoretisch ändern müsste weiß ich aber nicht wie :noe: