Created
May 29, 2012 19:27
-
-
Save Deltachaos/2830185 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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