Klasse Zug nicht statisch

This commit is contained in:
Marc Koch 2020-04-27 22:27:32 +02:00
parent 736a0712db
commit 15f1618fcf
Signed by: marc
GPG Key ID: AC2D4E00990A6767
1 changed files with 21 additions and 54 deletions

View File

@ -2,86 +2,53 @@ package gfn.marc;
import gfn.marc.gui.Fenster;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Zug {
private static Fenster f = TicTacToe.getF();
private static Spielfeld spielfeld = f.getSpielfeld();
private Fenster f = TicTacToe.getF();
private static int zugNummer = 0;
private static Spieler spieler;
private Spieler spieler;
private static boolean zugLaeuft;
public Zug() {
if (zugNummer == 9) {
Zug.zugNummer = 0;
}
Zug.zugNummer++;
}
public static void setZugNummer(int zugNummer) {
Zug.zugNummer = zugNummer;
}
// Zuganzahl hochzählen und Titelleiste setzen
public static void macheZug(Spieler spieler) {
Zug.spieler = spieler;
if (zugNummer == 9) {
Zug.zugNummer = 0;
}
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));
}
}
public void macheZug(Spieler spieler) {
this.spieler = spieler;
this.f.setzeTitel(spieler.getName() + " ist dran!");
this.setZugLaeuft(true);
// Auf setzen eines Feldes warten
while (Zug.isZugLaeuft()) {
while (this.isZugLaeuft()) {
try {
Thread.sleep(200);
} catch (InterruptedException ie) {
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() {
return zugNummer;
}
public static boolean isZugLaeuft() {
return zugLaeuft;
public Spieler getSpieler() {
return spieler;
}
public static void setZugLaeuft(boolean zugLaeuft) {
public boolean isZugLaeuft() {
return Zug.zugLaeuft;
}
public void setZugLaeuft(boolean zugLaeuft) {
Zug.zugLaeuft = zugLaeuft;
}