133 lines
3.1 KiB
Java
133 lines
3.1 KiB
Java
package gfn.marc;
|
|
|
|
import java.awt.*;
|
|
import java.awt.event.MouseEvent;
|
|
import java.awt.event.MouseListener;
|
|
|
|
public class Zug {
|
|
|
|
private static Frame f;
|
|
private static Spielfeld spielfeld;
|
|
static Spiel spiel;
|
|
private static int zugNummer = 0;
|
|
private static boolean zugLaeuft;
|
|
private static CustomMouseListener[] cmls = new CustomMouseListener[49];
|
|
|
|
public Zug(Spiel spiel) {
|
|
Zug.spiel = spiel;
|
|
Zug.spielfeld = Lotto.getSpielfeld();
|
|
Zug.f = Lotto.getF();
|
|
createMouseListeners();
|
|
}
|
|
|
|
// Zuganzahl hochzählen und Titelleiste setzen
|
|
public static void macheZug() {
|
|
if (zugNummer == 9) {
|
|
Zug.zugNummer = 0;
|
|
}
|
|
Zug.zugNummer++;
|
|
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(cmls[i]);
|
|
}
|
|
}
|
|
|
|
// Auf setzen eines Feldes warten
|
|
while (Zug.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(cmls[i]);
|
|
}
|
|
|
|
}
|
|
|
|
public static void createMouseListeners() {
|
|
for (int i = 0; i < spielfeld.getFelder().length; i++) {
|
|
cmls[i] = new CustomMouseListener(f, spielfeld.getFelder()[i]);
|
|
}
|
|
}
|
|
|
|
public static int getZugNummer() {
|
|
return zugNummer;
|
|
}
|
|
|
|
public static boolean isZugLaeuft() {
|
|
return zugLaeuft;
|
|
}
|
|
|
|
public static void setZugLaeuft(boolean zugLaeuft) {
|
|
Zug.zugLaeuft = zugLaeuft;
|
|
}
|
|
|
|
public static void setF(Frame f) {
|
|
Zug.f = f;
|
|
}
|
|
|
|
public static void setSpielfeld(Spielfeld spielfeld) {
|
|
Zug.spielfeld = spielfeld;
|
|
}
|
|
|
|
public static void setZugNummer(int zugNummer) {
|
|
Zug.zugNummer = zugNummer;
|
|
}
|
|
|
|
public static void setCmls(CustomMouseListener[] cmls) {
|
|
Zug.cmls = cmls;
|
|
}
|
|
}
|
|
|
|
|
|
class CustomMouseListener implements MouseListener {
|
|
|
|
private Frame f;
|
|
private Feld feld;
|
|
|
|
public CustomMouseListener(Frame f, Feld feld) {
|
|
this.f = f;
|
|
this.feld = feld;
|
|
}
|
|
|
|
// Auf Setzen des Feldes prüfen und ggf. Form zeichnen lassen
|
|
@Override
|
|
public void mouseClicked(MouseEvent mouseEvent) {
|
|
this.feld.setZeichen(new Kreuz());
|
|
f.repaint();
|
|
Zug.spiel.setNumberToLottoschein(this.feld.getFeldId());
|
|
Zug.setZugLaeuft(false);
|
|
}
|
|
|
|
// notwendige Implementierungen ohne weitere Funktion
|
|
@Override
|
|
public void mousePressed(MouseEvent mouseEvent) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void mouseReleased(MouseEvent mouseEvent) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void mouseEntered(MouseEvent mouseEvent) {
|
|
|
|
}
|
|
|
|
@Override
|
|
public void mouseExited(MouseEvent mouseEvent) {
|
|
|
|
}
|
|
}
|
|
|
|
|