Klasse Zug nicht statisch
This commit is contained in:
parent
736a0712db
commit
15f1618fcf
|
|
@ -2,86 +2,53 @@ package gfn.marc;
|
||||||
|
|
||||||
import gfn.marc.gui.Fenster;
|
import gfn.marc.gui.Fenster;
|
||||||
|
|
||||||
import java.awt.event.MouseAdapter;
|
|
||||||
import java.awt.event.MouseEvent;
|
|
||||||
|
|
||||||
public class Zug {
|
public class Zug {
|
||||||
|
|
||||||
private static Fenster f = TicTacToe.getF();
|
private Fenster f = TicTacToe.getF();
|
||||||
private static Spielfeld spielfeld = f.getSpielfeld();
|
|
||||||
private static int zugNummer = 0;
|
private static int zugNummer = 0;
|
||||||
private static Spieler spieler;
|
private Spieler spieler;
|
||||||
private static boolean zugLaeuft;
|
private static boolean zugLaeuft;
|
||||||
|
|
||||||
|
public Zug() {
|
||||||
|
if (zugNummer == 9) {
|
||||||
|
Zug.zugNummer = 0;
|
||||||
|
}
|
||||||
|
Zug.zugNummer++;
|
||||||
|
}
|
||||||
|
|
||||||
public static void setZugNummer(int zugNummer) {
|
public static void setZugNummer(int zugNummer) {
|
||||||
Zug.zugNummer = zugNummer;
|
Zug.zugNummer = zugNummer;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Zuganzahl hochzählen und Titelleiste setzen
|
// Zuganzahl hochzählen und Titelleiste setzen
|
||||||
public static void macheZug(Spieler spieler) {
|
public void macheZug(Spieler spieler) {
|
||||||
Zug.spieler = spieler;
|
this.spieler = spieler;
|
||||||
if (zugNummer == 9) {
|
this.f.setzeTitel(spieler.getName() + " ist dran!");
|
||||||
Zug.zugNummer = 0;
|
this.setZugLaeuft(true);
|
||||||
}
|
|
||||||
Zug.zugNummer++;
|
|
||||||
Zug.f.setzeTitel(spieler.getName() + " ist dran!");
|
|
||||||
Zug.setZugLaeuft(true);
|
|
||||||
|
|
||||||
|
|
||||||
// Mouselistener auf Felder setzen, die noch nicht gesetzt wurden
|
|
||||||
for (int i = 0; i < spielfeld.getFelder().length; i++) {
|
|
||||||
if (!spielfeld.getFelder()[i].isGesetzt()) {
|
|
||||||
spielfeld.getFelder()[i].getLabel().addMouseListener(new CustomMouseListener(i));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Auf setzen eines Feldes warten
|
// Auf setzen eines Feldes warten
|
||||||
while (Zug.isZugLaeuft()) {
|
while (this.isZugLaeuft()) {
|
||||||
try {
|
try {
|
||||||
Thread.sleep(200);
|
Thread.sleep(200);
|
||||||
} catch (InterruptedException ie) {
|
} catch (InterruptedException ie) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// MouseListener von allen Feldern entfernen
|
|
||||||
for (int i = 0; i < spielfeld.getFelder().length; i++) {
|
|
||||||
spielfeld.getFelder()[i].getLabel().removeMouseListener(new CustomMouseListener(i));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// Lokale Klasse für CustomMouseListener
|
|
||||||
static class CustomMouseListener extends MouseAdapter {
|
|
||||||
|
|
||||||
int i;
|
|
||||||
|
|
||||||
public CustomMouseListener(int i) {
|
|
||||||
this.i = i;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Auf Setzen des Feldes prüfen und ggf. Form zeichnen lassen
|
|
||||||
@Override
|
|
||||||
public void mouseClicked(MouseEvent mouseEvent) {
|
|
||||||
spielfeld.getFelder()[i].setZeichen(spieler.getForm());
|
|
||||||
Zug.setZugLaeuft(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void restartZug() {
|
|
||||||
macheZug(Zug.spieler);
|
|
||||||
Zug.zugNummer--;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int getZugNummer() {
|
public static int getZugNummer() {
|
||||||
return zugNummer;
|
return zugNummer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isZugLaeuft() {
|
public Spieler getSpieler() {
|
||||||
return zugLaeuft;
|
return spieler;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setZugLaeuft(boolean zugLaeuft) {
|
public boolean isZugLaeuft() {
|
||||||
|
return Zug.zugLaeuft;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setZugLaeuft(boolean zugLaeuft) {
|
||||||
Zug.zugLaeuft = zugLaeuft;
|
Zug.zugLaeuft = zugLaeuft;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue