Hallo zusammen,
ich hab erst mit Java begonnen zu programmieren, hab davor C Programmiert. Deswegen ist mein code noch sehr schlecht. Ich habe eine Endlosschleife und ich finde den Grund nicht. Was ich heraus gefunden habe ist, wenn die kartenanzahl (kanzahl in engine.java)über 10 ist tritt diese auf. Danke für eure Hilfe!!
hier der code: basis.java ist nur um die Spieleranzahl festzustellen
engine.java hier ist die Endlosschleife drin
[/code]
ich hab erst mit Java begonnen zu programmieren, hab davor C Programmiert. Deswegen ist mein code noch sehr schlecht. Ich habe eine Endlosschleife und ich finde den Grund nicht. Was ich heraus gefunden habe ist, wenn die kartenanzahl (kanzahl in engine.java)über 10 ist tritt diese auf. Danke für eure Hilfe!!
hier der code: basis.java ist nur um die Spieleranzahl festzustellen
Code:
import javax.swing.*;
import java.awt.event.*;
import java.util.Random;
public class basis extends JFrame implements ActionListener{
JButton Bok = new JButton ("OK");
JLabel Lueberschrift = new JLabel ("Wizzard");
JLabel Lfrage = new JLabel ("Wählen Sie bitte die Anzal der Spieler");
JComboBox CBspieler = new JComboBox();
public basis(){
super("Wizzard");
setSize(250,140);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Bok.addActionListener(this);
//CBspieler.addActionListener(this);
JPanel panel = new JPanel();
for(int i=3; i<7;i++) {CBspieler.addItem("" + i);}
panel.add(Lueberschrift);
panel.add(Lfrage);
panel.add(CBspieler);
panel.add(Bok);
setContentPane(panel);
}
public static void main(String[] arguments){
basis rb = new basis();
rb.show();
}
public void actionPerformed(ActionEvent evt){
Object source = evt.getSource();
if (source==Bok){
int anzahl=0;
anzahl = CBspieler.getSelectedIndex()+3;
engine en = new engine(anzahl);
en.show();
}
repaint();
}
}
Code:
import javax.swing.*;
import java.awt.event.*;
import java.util.Random;
public class engine extends JFrame implements ActionListener{
JButton Bok = new JButton ("Start");
JLabel Llabel1 = new JLabel ();
JLabel Llabel2 = new JLabel ();
JLabel Llabel3 = new JLabel ();
JComboBox CBStiche = new JComboBox ();
int t=0,k=1, kanzahl=0, Ganzahl;
int[] karte= new int[60];
public engine(int anzahl){
super("Wizzard");
setSize(250,140);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Bok.addActionListener(this);
JPanel panel = new JPanel();
panel.add(Llabel1);
panel.add(Llabel2);
panel.add(Llabel3);
panel.add(CBStiche);
panel.add(Bok);
setContentPane(panel);
Ganzahl=anzahl;
}
public void actionPerformed(ActionEvent evt){
Object source = evt.getSource();
if (source==Bok){
System.out.println(""+t);
if (t==0){
for(int h=0;h<60;h++) //Array wird auf 99 gesetzt
{
karte[h]=99;
}
if (k==(60/Ganzahl)){kanzahl=k*Ganzahl;} //Kartenanzahl Runde 20
else {kanzahl = k*Ganzahl+1;} // Kartenanzahl mit Trumpf
System.out.println("Ganzahl "+Ganzahl+"kanzahl"+kanzahl);
for(int i=0;i<kanzahl;i++) // Hier werden "anzahl" Karten geholt
{
int zahl=0, l=0, stop=0;
Random generator = new Random();
do{
zahl = generator.nextInt(60);
while(l<60&&l>=0&&zahl!=karte[l]&&zahl!=0) //Geht das Array "karte" durch und untersucht nach ungleichheit
{
l++;
}
if (l==60) { //Wenn die obere Do while Schleife 60 mal durch ist gibt es die Zahl noch nicht
karte[i]=(int)zahl;
} //wird im Array abgelegt
else {
stop=5;l=0; // wenn ungleich 60 ist bekommt stop einen wert damit die do-While schleife wiederholt wird
}
}while(stop==5);
System.out.println(" "+ karte[0]+" "+ karte[1]+" "+ karte[2]+" "+ karte[3]+" "+ karte[4]+" "+ karte[5]+" t="+t);
}
t++;
}
else
{
if (t<Ganzahl)
{
System.out.println(" "+ karte[0]+" "+ karte[1]);
t++;
}
else
{
t=0; k++;
}}
}
}
}