package Kniffel;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class KniffelSpiel extends Applet implements ActionListener, ItemListener{
Button wuerfeln, neu, hilfe;
public static Checkbox ch1,ch2,ch3,ch4,ch5,einer,zweier,dreier,vierer,
fuenfer,sechser,dpasch,vpasch,full,kstrasse,gstrasse,pasch,chance;
public static Label peiner,pzweier,pdreier,pvierer,pfuenfer,psechser,
pdpasch,pvpasch,pfull,pkstrasse,pgstrasse,ppasch,pchance,gesamt,pgesamt,sp;
public static int[] Augen = new int[5];
HilfeFenster help = new HilfeFenster();
Kniffel akt = new Kniffel();
public static Kniffel spieler1 = new Kniffel();
public static Kniffel spieler2 = new Kniffel();
public static boolean angeklickt;
public static TextArea Hilfe;
int verschiebe=0;
public void init(){
setSize(600,400);
setLayout(null);
setBackground(Color.blue);
ch1=new Checkbox("Stop");
ch1.setBounds(100,80,55,15);
ch1.setForeground(Color.white);
add(ch1);
ch2=new Checkbox("Stop");
ch2.setBounds(190,80,55,15);
ch2.setForeground(Color.white);
add(ch2);
ch3=new Checkbox("Stop");
ch3.setBounds(280,80,55,15);
ch3.setForeground(Color.white);
add(ch3);
ch4=new Checkbox("Stop");
ch4.setBounds(370,80,55,15);
ch4.setForeground(Color.white);
add(ch4);
ch5=new Checkbox("Stop");
ch5.setBounds(460,80,55,15);
ch5.setForeground(Color.white);
add(ch5);
wuerfeln=new Button("Würfeln");
wuerfeln.setBounds(290,130,96,33);
wuerfeln.setBackground(new Color(12632256));
wuerfeln.addActionListener(this);
add(wuerfeln);
neu=new Button("neues Spiel");
neu.setBounds(420,130,96,33);
neu.setBackground(new Color(12632256));
neu.addActionListener(this);
add(neu);
hilfe=new Button("Spielregeln");
hilfe.setBounds(100,130,96,33);
hilfe.setBackground(new Color(12632256));
hilfe.addActionListener(this);
add(hilfe);
Label Punkt=new Label("Punktverteilung");
Punkt.setForeground(Color.white);
Punkt.setBounds(300,200,90,15);
add(Punkt);
einer=new Checkbox("1 er");
einer.setBounds(300,220,45,15);
einer.setForeground(Color.white);
einer.addItemListener(this);
add(einer);
peiner=new Label("0");
peiner.setBounds(400,220,20,15);
peiner.setBackground(Color.white);
add(peiner);
zweier=new Checkbox("2 er");
zweier.setBounds(300,240,45,15);
zweier.setForeground(Color.white);
zweier.addItemListener(this);
add(zweier);
pzweier=new Label("0");
pzweier.setBounds(400,240,20,15);
pzweier.setBackground(Color.white);
add(pzweier);
dreier=new Checkbox("3 er");
dreier.setBounds(300,260,45,15);
dreier.setForeground(Color.white);
dreier.addItemListener(this);
add(dreier);
pdreier=new Label("0");
pdreier.setBounds(400,260,20,15);
pdreier.setBackground(Color.white);
add(pdreier);
vierer=new Checkbox("4 er");
vierer.setBounds(300,280,45,15);
vierer.setForeground(Color.white);
vierer.addItemListener(this);
add(vierer);
pvierer=new Label("0");
pvierer.setBounds(400,280,20,15);
pvierer.setBackground(Color.white);
add(pvierer);
fuenfer=new Checkbox("5 er");
fuenfer.setBounds(300,300,45,15);
fuenfer.setForeground(Color.white);
fuenfer.addItemListener(this);
add(fuenfer);
pfuenfer=new Label("0");
pfuenfer.setBounds(400,300,20,15);
pfuenfer.setBackground(Color.white);
add(pfuenfer);
sechser=new Checkbox("6 er");
sechser.setBounds(300,320,45,15);
sechser.setForeground(Color.white);
sechser.addItemListener(this);
add(sechser);
psechser=new Label("0");
psechser.setBounds(400,320,20,15);
psechser.setBackground(Color.white);
add(psechser);
dpasch=new Checkbox("3 er-Pasch");
dpasch.setBounds(300,340,85,15);
dpasch.setForeground(Color.white);
dpasch.addItemListener(this);
add(dpasch);
pdpasch=new Label("0");
pdpasch.setBounds(400,340,20,15);
pdpasch.setBackground(Color.white);
add(pdpasch);
vpasch=new Checkbox("4 er-Pasch");
vpasch.setBounds(450,220,85,15);
vpasch.setForeground(Color.white);
vpasch.addItemListener(this);
add(vpasch);
pvpasch=new Label("0");
pvpasch.setBounds(560,220,20,15);
pvpasch.setBackground(Color.white);
add(pvpasch);
full=new Checkbox("Full House");
full.setBounds(450,240,85,15);
full.setForeground(Color.white);
full.addItemListener(this);
add(full);
pfull=new Label("0");
pfull.setBounds(560,240,20,15);
pfull.setBackground(Color.white);
add(pfull);
kstrasse=new Checkbox("Kleine Straße");
kstrasse.setBounds(450,260,100,15);
kstrasse.setForeground(Color.white);
kstrasse.addItemListener(this);
add(kstrasse);
pkstrasse=new Label("0");
pkstrasse.setBounds(560,260,20,15);
pkstrasse.setBackground(Color.white);
add(pkstrasse);
gstrasse=new Checkbox("Große Straße");
gstrasse.setBounds(450,280,100,15);
gstrasse.setForeground(Color.white);
gstrasse.addItemListener(this);
add(gstrasse);
pgstrasse=new Label("0");
pgstrasse.setBounds(560,280,20,15);
pgstrasse.setBackground(Color.white);
add(pgstrasse);
pasch=new Checkbox("Kniffel");
pasch.setBounds(450,300,65,15);
pasch.setForeground(Color.white);
pasch.addItemListener(this);
add(pasch);
ppasch=new Label("0");
ppasch.setBounds(560,300,20,15);
ppasch.setBackground(Color.white);
add(ppasch);
chance=new Checkbox("Chance");
chance.setBounds(450,320,70,15);
chance.setForeground(Color.white);
chance.addItemListener(this);
add(chance);
pchance=new Label("0");
pchance.setBounds(560,320,20,15);
pchance.setBackground(Color.white);
add(pchance);
gesamt=new Label("Gesamt");
gesamt.setBounds(450,340,50,15);
gesamt.setForeground(Color.white);
add(gesamt);
pgesamt=new Label("0");
pgesamt.setBounds(530,340,50,15);
pgesamt.setBackground(Color.white);
add(pgesamt);
sp=new Label("Spieler 1");
sp.setBounds(525,200,50,15);
sp.setForeground(Color.red);
add(sp);
Hilfe=new TextArea();
Hilfe.setBounds(10,170,240,200);
Hilfe.setBackground(Color.white);
Hilfe.hide(); //hide=macht das unsichtbsar
add(Hilfe);
akt=spieler1;
}
public void actionPerformed(ActionEvent event)
{String cmd=event.getActionCommand();
if(cmd.equals("Würfeln")){
if(angeklickt) {
wechseln();
}
Augen=akt.wuerfeln();
repaint();
}
else if(cmd.equals("neues Spiel")){
spieler1.clear();
spieler2.clear();
akt=spieler2;
wechseln();
repaint();
}
else if(cmd.equals("Spielregeln")){
help.zeigen();
}
}
public void itemStateChanged(ItemEvent i){
if(angeklickt==false) {
String str=i.getItem().toString();
if(str.equals(einer.getLabel())) { akt.calc(1);st(1); }
if(str.equals(zweier.getLabel())) { akt.calc(2);st(2); }
if(str.equals(dreier.getLabel())) { akt.calc(3);st(3); }
if(str.equals(vierer.getLabel())) { akt.calc(4);st(4); }
if(str.equals(fuenfer.getLabel())) { akt.calc(5);st(5); }
if(str.equals(sechser.getLabel())) { akt.calc(6);st(6); }
if(str.equals(dpasch.getLabel())) { akt.pas(3);st(7); }
if(str.equals(vpasch.getLabel())) { akt.pas(4);st(8); }
if(str.equals(chance.getLabel())) { akt.pas(5);st(9); }
if(str.equals(full.getLabel())) { akt.house();st(10);}
if(str.equals(kstrasse.getLabel())) { akt.pas(1);st(11); }
if(str.equals(gstrasse.getLabel())) { akt.pas(2);st(12); }
if(str.equals(pasch.getLabel())) { akt.pas(0);st(13); }
st(14);
angeklickt=true;
}
Object anchorpoint = getParent();
while (! (anchorpoint instanceof Frame))
anchorpoint = ((Component)anchorpoint).getParent();
boolean x=true;
for(int r=1;r<14;r++)
if(spieler2.komb[r]==false) x=false;
if (x) new Ende((Frame)anchorpoint, true);
}
public void paint(Graphics g){
int Augenzahl=0;
g.setColor(Color.black); //Rahmen um den Ergebniszettel
g.drawRect(290,190,300,175);
int verschieben=0; //farbigen Flächen für den Würfel
for(int i=0;i<5;i++){
g.setColor(Color.cyan);
g.fillRect(100+verschieben,10,60,60);
verschieben=verschieben+90;
}
int x=0;
for(int i=0;i<10;i++){
if(i<5){
if(akt.read(i)==true)
Augenzahl=flackern(i);
}
else{
if(akt.read(i%5)==false)
for(int a=0;a<250;a++){
int[] result=akt.wurf(250);
int Zahl=result[a];
}
Augenzahl=flackern(i%5);
}
switch(Augenzahl) {
case 1: g.setColor(Color.black);
g.fillOval(126+verschiebe,36,8,8);
break;
case 2: g.setColor(Color.black);
g.fillOval(110+verschiebe,36,8,8);
g.fillOval(142+verschiebe,36,8,8);
break;
case 3: g.setColor(Color.black);
g.fillOval(126+verschiebe,36,8,8);
g.fillOval(110+verschiebe,20,8,8);
g.fillOval(142+verschiebe,52,8,8);
break;
case 4: g.setColor(Color.black);
g.fillOval(110+verschiebe,20,8,8);
g.fillOval(110+verschiebe,52,8,8);
g.fillOval(142+verschiebe,20,8,8);
g.fillOval(142+verschiebe,52,8,8);
break;
case 5: g.setColor(Color.black);
g.fillOval(126+verschiebe,36,8,8);
g.fillOval(110+verschiebe,20,8,8);
g.fillOval(110+verschiebe,52,8,8);
g.fillOval(142+verschiebe,20,8,8);
g.fillOval(142+verschiebe,52,8,8);
break;
case 6: g.setColor(Color.black);
g.fillOval(110+verschiebe,20,8,8);
g.fillOval(110+verschiebe,52,8,8);
g.fillOval(110+verschiebe,36,8,8);
g.fillOval(142+verschiebe,36,8,8);
g.fillOval(142+verschiebe,20,8,8);
g.fillOval(142+verschiebe,52,8,8);
break;
} }
}
public int flackern(int i){
verschiebe=i*90;
return Augen[i];
}
public void wechseln() {
angeklickt=false;
akt.counter=0;
if(akt==spieler1) {akt=spieler2; sp.setText("Spieler 2"); }
else if (akt==spieler2){akt=spieler1; sp.setText("Spieler 1");}
einer.setState(akt.komb[1]); zweier.setState(akt.komb[2]);
dreier.setState(akt.komb[3]); vierer.setState(akt.komb[4]);
fuenfer.setState(akt.komb[5]); sechser.setState(akt.komb[6]);
dpasch.setState(akt.komb[7]); vpasch.setState(akt.komb[8]);
kstrasse.setState(akt.komb[9]);gstrasse.setState(akt.komb[10]);
pasch.setState(akt.komb[11]); chance.setState(akt.komb[12]);
full.setState(akt.komb[13]);
if(akt.komb[1]) einer.disable(); else einer.enable();
if(akt.komb[2]) zweier.disable(); else zweier.enable();
if(akt.komb[3]) dreier.disable(); else dreier.enable();
if(akt.komb[4]) vierer.disable(); else vierer.enable();
if(akt.komb[5]) fuenfer.disable(); else fuenfer.enable();
if(akt.komb[6]) sechser.disable(); else sechser.enable();
if(akt.komb[7]) dpasch.disable(); else dpasch.enable();
if(akt.komb[8]) vpasch.disable(); else vpasch.enable();
if(akt.komb[9]) kstrasse.disable(); else kstrasse.enable();
if(akt.komb[10]) gstrasse.disable(); else gstrasse.enable();
if(akt.komb[11]) pasch.disable(); else pasch.enable();
if(akt.komb[12]) chance.disable(); else chance.enable();
if(akt.komb[13]) full.disable(); else full.enable();
ch1.setState(false);ch2.setState(false);ch3.setState(false);
ch5.setState(false);ch4.setState(false);
st(1);st(2);st(3);st(4);st(5);st(6);st(7);st(8);st(9);st(10);
st(11);st(12);st(13);st(14);
}
public void st(int x) {
switch(x) {
case 1: peiner.setText(String.valueOf(akt.punkte[1])); break;
case 2: pzweier.setText(String.valueOf(akt.punkte[2])); break;
case 3: pdreier.setText(String.valueOf(akt.punkte[3])); break;
case 4: pvierer.setText(String.valueOf(akt.punkte[4])); break;
case 5: pfuenfer.setText(String.valueOf(akt.punkte[5])); break;
case 6: psechser.setText(String.valueOf(akt.punkte[6])); break;
case 7: pdpasch.setText(String.valueOf(akt.punkte[7])); break;
case 8: pvpasch.setText(String.valueOf(akt.punkte[8])); break;
case 9: pchance.setText(String.valueOf(akt.punkte[12])); break;
case 10: pfull.setText(String.valueOf(akt.punkte[13])); break;
case 11: pkstrasse.setText(String.valueOf(akt.punkte[9])); break;
case 12: pgstrasse.setText(String.valueOf(akt.punkte[10])); break;
case 13: ppasch.setText(String.valueOf(akt.punkte[11])); break;
case 14: pgesamt.setText(String.valueOf(akt.gesamt)); break;
}
}
}