Skip to content

Instantly share code, notes, and snippets.

@Deltachaos
Created May 29, 2012 19:27
Show Gist options
  • Save Deltachaos/2830185 to your computer and use it in GitHub Desktop.
Save Deltachaos/2830185 to your computer and use it in GitHub Desktop.
public class Muenze {
private int farbe;
public Muenze(int farbe) {
// TODO Auto-generated constructor stub
this.farbe = farbe;
}
public void zeichnen() {
// TODO Auto-generated method stub
if (farbe == 0)
System.out.print("o");
else
System.out.print("x");
}
public int getColor() {
// TODO Auto-generated method stub
return farbe;
}
}
public class Spielfeld {
private Muenze feld[][];
private int letzteZeile;
private int letzteSpalte;
public Spielfeld() {
feld = new Muenze[7][6];
}
public void zeichnen() {
// TODO Auto-generated method stub
for (int z = 0; z < 6; z++) {
for (int s = 0; s < 7; s++) {
System.out.print("|"); // nicht println, wg. neuer Zeile
Muenze m = feld[s][z];
if (m == null)
System.out.print(" ");
else
m.zeichnen();
} // eine Zeile gezeichnet
System.out.println("|");
} // Feld gezeichnet
System.out.println("-----------------");
}
public boolean werfen(int spalte, Muenze muenze) {
// TODO Auto-generated method stub
spalte--;// Interne Nummerierung zwischen 0 und 6 statt 1 bis 7
int zeile = 0;
boolean fertig = false;
Muenze m;
do {
m = feld[spalte][zeile];
fertig = m != null || zeile == 5;
zeile++;
} while (!fertig);
zeile--;
if (m != null)
zeile--;
if (zeile == -1)
return false;
feld[spalte][zeile] = muenze;
letzteZeile = zeile;
letzteSpalte = spalte;
return true;
}
public int bestimmeZustand() {
int zaehler = 1;
int farbe = feld[letzteSpalte][letzteZeile].getColor();
int zeile;
int spalte;
boolean gleicheFarbe;
// nach unten suchen
zeile = letzteZeile + 1;
gleicheFarbe = true;
while (gleicheFarbe && zeile < 6 && zaehler < 4) {
gleicheFarbe = feld[letzteSpalte][zeile].getColor() == farbe;
if (gleicheFarbe)
zaehler++;
zeile++;
}
if (zaehler == 4)
return (farbe + 2);
// waagerecht suchen
zaehler = 0;
spalte = 0;
gleicheFarbe = true;
while (spalte < 7) {
if (feld[spalte][letzteZeile] != null) {
gleicheFarbe = feld[spalte][letzteZeile].getColor() == farbe;
if (gleicheFarbe) {
zaehler++;
} else {
zaehler = 0;
}
} else {
zaehler = 0;
}
if (zaehler == 4)
return (farbe + 2);
spalte++;
}
spalte = letzteSpalte--;
zeile = letzteZeile++;
while (spalte >= 0 && zeile < 6 && feld[spalte][zeile] != null && feld[spalte][zeile].getColor() == farbe) {
spalte--;
zeile++;
}
spalte++;
zeile--;
spalte++;
zeile--;
zaehler = 1;
gleicheFarbe = true;
while (gleicheFarbe && spalte < 7 && zeile >= 0 && zaehler < 4) {
if (feld[spalte][zeile] == null) {
break;
}
gleicheFarbe = feld[spalte][zeile].getColor() == farbe;
if (gleicheFarbe)
zaehler++;
spalte++;
zeile--;
}
if (zaehler == 4)
return (farbe + 2);
return 0;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment