Also...
Erst mal der Java-Code:
Alles anzeigen
Es gibt also 9 Kästchen die alle beim Mausdruck überprüfen ob sie "getroffen" wurden und sich dann je nachdem wer dran ist mit Kreis oder Kreuz neu zeichnen...
Läuft so weit auch gut, aber gibt es ne Möglichkeit zu überprüfen ob 3 in einer Reihe sind ohne das man alle möglichen Fälle auflistet :
Irgend ne Mathematische Gleichung oder so ?^^
Hier noch des Kästchen:
Alles anzeigen
und die EreignisAnwendung :
Alles anzeigen
Danke im Voraus =)
Erst mal der Java-Code:
Quellcode
- import sum.kern.Stift;
- public class TickTackToe extends EreignisAnwendung
- {
- // Bezugsobjekte
- Kästchen K1;
- Kästchen K2;
- Kästchen K3;
- Kästchen K4;
- Kästchen K5;
- Kästchen K6;
- Kästchen K7;
- Kästchen K8;
- Kästchen K9;
- Kästchen dummy;
- Stift stift;
- // Attribute
- private boolean Spieler;
- // Konstruktor
- public TickTackToe()
- {
- super(800,800);
- stift = new Stift();
- K1 = new Kästchen(this.bildschirm().breite()/4-25,this.bildschirm().hoehe()/4-25);
- K2 = new Kästchen(this.bildschirm().breite()/4*2-25,this.bildschirm().hoehe()/4-25);
- K3 = new Kästchen(this.bildschirm().breite()/4*3-25,this.bildschirm().hoehe()/4-25);
- K4 = new Kästchen(this.bildschirm().breite()/4-25,this.bildschirm().hoehe()/4*2-25);
- K5 = new Kästchen(this.bildschirm().breite()/4*2-25,this.bildschirm().hoehe()/4*2-25);
- K6 = new Kästchen(this.bildschirm().breite()/4*3-25,this.bildschirm().hoehe()/4*2-25);
- K7 = new Kästchen(this.bildschirm().breite()/4-25,this.bildschirm().hoehe()/4*3-25);
- K8 = new Kästchen(this.bildschirm().breite()/4*2-25,this.bildschirm().hoehe()/4*3-25);
- K9 = new Kästchen(this.bildschirm().breite()/4*3-25,this.bildschirm().hoehe()/4*3-25);
- Spieler = true;
- super.fuehreAus();
- }
- public void bearbeiteMausDruck(double pH,double pV)
- {
- if(K1.getroffen(pH,pV))
- {
- if(Spieler)
- {
- K1.kreuz();
- Spieler = false;
- }
- else
- {
- K1.kreis();
- Spieler = true;
- }
- }
- if(K2.getroffen(pH,pV))
- {
- if(Spieler)
- {
- K2.kreuz();
- Spieler = false;
- }
- else
- {
- K2.kreis();
- Spieler = true;
- }
- }
- if(K3.getroffen(pH,pV))
- {
- if(Spieler)
- {
- K3.kreuz();
- Spieler = false;
- }
- else
- {
- K3.kreis();
- Spieler = true;
- }
- }
- if(K4.getroffen(pH,pV))
- {
- if(Spieler)
- {
- K4.kreuz();
- Spieler = false;
- }
- else
- {
- K4.kreis();
- Spieler = true;
- }
- }
- if(K5.getroffen(pH,pV))
- {
- if(Spieler)
- {
- K5.kreuz();
- Spieler = false;
- }
- else
- {
- K5.kreis();
- Spieler = true;
- }
- }
- if(K6.getroffen(pH,pV))
- {
- if(Spieler)
- {
- K6.kreuz();
- Spieler = false;
- }
- else
- {
- K6.kreis();
- Spieler = true;
- }
- }
- if(K7.getroffen(pH,pV))
- {
- if(Spieler)
- {
- K7.kreuz();
- Spieler = false;
- }
- else
- {
- K7.kreis();
- Spieler = true;
- }
- }
- if(K8.getroffen(pH,pV))
- {
- if(Spieler)
- {
- K8.kreuz();
- Spieler = false;
- }
- else
- {
- K8.kreis();
- Spieler = true;
- }
- }
- if(K9.getroffen(pH,pV))
- {
- if(Spieler)
- {
- K9.kreuz();
- Spieler = false;
- }
- else
- {
- K9.kreis();
- Spieler = true;
- }
- }
- }
- public void bearbeiteMausLos(double pH,double pV){}
- public void bearbeiteMausDoppelKlick(double pH,double pV){}
- public void bearbeiteMausBewegt(double pH,double pV){}
- public void bearbeiteTaste(char pZeichen){}
- public void idle()
- {
- K1.zeichneDich();
- K2.zeichneDich();
- K3.zeichneDich();
- K4.zeichneDich();
- K5.zeichneDich();
- K6.zeichneDich();
- K7.zeichneDich();
- K8.zeichneDich();
- K9.zeichneDich();
- }
- }
Es gibt also 9 Kästchen die alle beim Mausdruck überprüfen ob sie "getroffen" wurden und sich dann je nachdem wer dran ist mit Kreis oder Kreuz neu zeichnen...
Läuft so weit auch gut, aber gibt es ne Möglichkeit zu überprüfen ob 3 in einer Reihe sind ohne das man alle möglichen Fälle auflistet :
Irgend ne Mathematische Gleichung oder so ?^^
Hier noch des Kästchen:
Quellcode
- import sum.kern.Stift;
- public class Kästchen
- {
- // Bezugsobjekte
- Stift S;
- // Attribute
- public boolean Kreuz;
- public boolean Kreis;
- public double zH;
- public double zV;
- // Konstruktor
- public Kästchen(int pH, int pV)
- {
- S = new Stift();
- zH = pH;
- zV = pV;
- S.bewegeBis(pH,pV);
- }
- // Dienste
- public void zeichneDich()
- {
- if(Kreuz)
- {
- S.zeichneRechteck(50,50);
- S.runter();
- S.bewegeBis(zH+50,zV+50);
- S.bewegeBis(zH,zV);
- }
- else
- {
- if(Kreis)
- {
- S.zeichneRechteck(50,50);
- S.bewegeBis(zH+25,zV+25);
- S.zeichneKreis(10);
- S.bewegeBis(zH,zV);
- }
- else
- {
- S.zeichneRechteck(50,50);
- }
- }
- }
- public void loescheDich()
- {
- S.radiere();
- this.zeichneDich();
- S.normal();
- }
- public boolean getroffen(double pH,double pV)
- {
- return pH > S.hPosition() && pH < S.hPosition() + 50 && pV > S.vPosition() && pV < S.vPosition() +50;
- }
- public void kreuz()
- {
- if(Kreis != true)
- {
- Kreuz = true;
- }
- }
- public void kreis()
- {
- if(Kreuz != true)
- {
- Kreis = true;
- }
- }
- public boolean nkreuz()
- {
- return Kreuz;
- }
- public boolean nkreis()
- {
- return Kreis;
- }
- public void gibFrei()
- {
- S.gibFrei();
- }
- }
und die EreignisAnwendung :
Quellcode
- /**
- * @author Philip WOltersdorf
- * @version 1.0
- */
- public abstract class EreignisAnwendung extends Anwendung
- {
- // Bezugsobjekte
- // Attribute
- private boolean zArbeit;
- private boolean MausUnten;
- private int zX;
- private int zY;
- // Konstruktor
- public EreignisAnwendung(int pB,int pH)
- {
- super(pB,pH);
- zArbeit = true;
- }
- // Dienste
- public abstract void bearbeiteMausDruck(double pH,double pV);
- public abstract void bearbeiteMausLos(double pH,double pV);
- public abstract void bearbeiteMausDoppelKlick(double pH,double pV);
- public abstract void bearbeiteMausBewegt(double pH,double pV);
- public abstract void bearbeiteTaste(char pZeichen);
- public abstract void idle();
- public void ende()
- {
- zArbeit = false;
- }
- public void fuehreAus()
- {
- do
- {
- if(this.maus().istGedrueckt() && !MausUnten)
- {
- MausUnten = true;
- this.bearbeiteMausDruck(this.maus().hPosition(),this.maus().vPosition());
- }
- else
- {
- if(!this.maus().istGedrueckt() && MausUnten)
- {
- MausUnten = false;
- this.bearbeiteMausLos(this.maus().hPosition(),this.maus().vPosition());
- }
- else
- {
- if(this.maus().doppelKlick())
- {
- this.bearbeiteMausDoppelKlick(this.maus().hPosition(),this.maus().vPosition());
- }
- else
- {
- if(this.maus().hPosition() != zX || this.maus().vPosition() != zY)
- {
- this.bearbeiteMausBewegt(this.maus().hPosition(),this.maus().vPosition());
- zX = this.maus().hPosition();
- zY = this.maus().vPosition();
- }
- else
- {
- if(this.tastatur().wurdeGedrueckt())
- {
- this.bearbeiteTaste(this.tastatur().zeichen());
- this.tastatur().weiter();
- }
- else
- {
- this.idle();
- }
- }
- }
- }
- }
- }while(zArbeit != false);
- }
- }
Danke im Voraus =)
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von möP ()