HSZG Vorkurs Informatik WS 2014/Damespiel (Alexander Preuß)/Spielregeln (Alexander Preuß)
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Java</language>
In diesem Arbeitsblatt setzen wir die Programmierung eines konsolenbasierten Brettspiels fort. Wir bleiben zunächst beim Dame-Spiel, da wir hierfür schon einige Methoden entwickelt haben und die Spielregeln noch einigermaßen überschaubar sind. Machen Sie sich bei [http://de.wikipedia.org/wiki/Dame_%28Spiel%29 | Wikipedia] zunächst mit den Dame-Regeln vertraut und sehen Sie sich dort die Animation an.
In diesem Arbeitsblatt ist es das Ziel, die Einhaltung von Spielregeln mit Hilfe von geeigneten Methoden sicherzustellen. Da wir auf der gestrigen Arbeit aufbauen wollen, kopieren Sie bitte zunächst folgende Methoden aus dem Arbeitsblatt [[HSZG_Vorkurs_Informatik_WS_2014/Spielfelder | Spielfelder]] in die nächste Codebox:
* ''erstelle_spielfeld''
* ''drucke_spielfeld''
* ''setze_alle_steine''
* ''setze_spielstein''
<code id="54302eeb572c8">
String[][] erstelle_spielfeld(){
String[][] array = new String[8][8];
for(i=0; i<array.length; i++){
for(j=0; j<array[0].length; j++){
array[i][j] = ("|_");
}
}
return array;
}
void drucke_spielfeld(String[][] array){
for(int x=0; x < array.length; x++){
System.out.println();
for(int y=0; y < array[0].length; y++){
System.out.print(array[x][y]);
}
}
}
String[][] setze_damen(String[][] array){
for(i=0; i<8; i++){
if((array.length!=8) || (array[i].length!=8)){
return array;
}
else {
array =setze_spielstein(array, ("1"), 0, 0, 0, 1);
array =setze_spielstein(array, ("1"), 0, 0, 0, 3);
array =setze_spielstein(array, ("1"), 0, 0, 0, 5);
array =setze_spielstein(array, ("1"), 0, 0, 0, 7);
array =setze_spielstein(array, ("1"), 0, 0, 1, 0);
array =setze_spielstein(array, ("1"), 0, 0, 1, 2);
array =setze_spielstein(array, ("1"), 0, 0, 1, 4);
array =setze_spielstein(array, ("1"), 0, 0, 1, 6);
array =setze_spielstein(array, ("1"), 0, 0, 2, 1);
array =setze_spielstein(array, ("1"), 0, 0, 2, 3);
array =setze_spielstein(array, ("1"), 0, 0, 2, 5);
array =setze_spielstein(array, ("1"), 0, 0, 2, 7);
array =setze_spielstein(array, ("2"), 0, 0, 5, 0);
array =setze_spielstein(array, ("2"), 0, 0, 5, 2);
array =setze_spielstein(array, ("2"), 0, 0, 5, 4);
array =setze_spielstein(array, ("2"), 0, 0, 5, 6);
array =setze_spielstein(array, ("2"), 0, 0, 6, 1);
array =setze_spielstein(array, ("2"), 0, 0, 6, 3);
array =setze_spielstein(array, ("2"), 0, 0, 6, 5);
array =setze_spielstein(array, ("2"), 0, 0, 6, 7);
array =setze_spielstein(array, ("2"), 0, 0, 7, 0);
array =setze_spielstein(array, ("2"), 0, 0, 7, 2);
array =setze_spielstein(array, ("2"), 0, 0, 7, 4);
array =setze_spielstein(array, ("2"), 0, 0, 7, 6);
return array;
}
}
}
String[][] setze_spielstein(String[][]array, String spielstein, int zeile_alt, int spalte_alt, int zeile_neu, int spalte_neu){
array[zeile_neu][spalte_neu] = ("|"+spielstein);
array[zeile_alt][spalte_alt] = ("|_");
return array;
}
</code>
Es wird davon ausgegangen, dass Sie sich in der Methode ''setze_alle_steine'' für zwei bestimmte Strings entschieden haben, die Spieler 1 und Spieler 2 darstellen (z.B. Spielsteine "1" und "2"). Diese Strings sollten Sie im Folgenden immer verwenden.
'''Aufgabe 1'''
Ein Spielzug muss beim Dame-Spiel bestimmte Anforderungen erfüllen:
Wenn Sie an der Reihe sind, bewegen Sie einen Ihrer Steine diagonal in Richtung gegnerische Seite.
Sie müssen den Stein vorwärts in ein unbesetztes Feld bewegen, indem Sie ihn entweder diagonal um genau ein Feld verschieben
oder einen gegnerischen Stein überspringen (dazu sagt man auch ''schlagen'').
Zum Springen muss Ihr Spielstein diagonal direkt vor dem gegnerischen Stein platziert sein.
Außerdem muss sich hinter dem gegnerischen Stein ein leeres Feld befinden.
Sie müssen also den gegnerischen Stein überspringen und direkt dahinter auf einem leeren Feld landen.
Entwickeln Sie eine Methode ''ist_gültig'', die folgende Parameter entgegennimmt:
# das Spielfeld-Array
# ''zeile_alt'' und ''spalte_alt'' für die Position des Spielsteins, der bewegt werden soll
# ''zeile_neu'' und ''spalte_neu'' für die vom Nutzer gewünschte neue Position des Spielsteins
Die Methode soll nur überprüfen, ob dieser Spielzug nach obiger Beschreibung gültig ist oder nicht. Sie soll true zurückgeben, wenn der Spielzug in Ordnung ist, ansonsten false.
<code id="54302eeb57363">
boolean ist_gültig(String[][]array, int zeile_alt, int spalte_alt, int zeile_neu, int spalte_neu){
boolean ergebnis = false;
if(array[zeile_neu][spalte_neu].equals("|_")){
if(array[zeile_alt][spalte_alt].equals("|1")){
if((zeile_neu - zeile_alt)==1){
if((Math.abs(spalte_neu - spalte_alt))==1){
ergebnis = true;
}
}
if((zeile_neu - zeile_alt)==2){
if((spalte_neu - spalte_alt)==2){
if(array[zeile_neu-1][spalte_neu-1].equals("|2")){
ergebnis = true;
}
}
if((spalte_neu - spalte_alt)== -2){
if(array[zeile_neu-1][spalte_neu+1].equals("|2")){
ergebnis = true;
}
}
}
}
if(array[zeile_alt][spalte_alt].equals("|2")){
if((zeile_neu - zeile_alt)== -1){
if((Math.abs(spalte_neu - spalte_alt))==1){
ergebnis = true;
}
}
if((zeile_neu - zeile_alt)== -2){
if((spalte_neu - spalte_alt)==2){
if(array[zeile_neu+1][spalte_neu-1].equals("|1")){
ergebnis = true;
}
}
if((spalte_neu - spalte_alt)== -2){
if(array[zeile_neu+1][spalte_neu+1].equals("|1")){
ergebnis = true;
}
}
}
}
}
return ergebnis;
}
</code>
<run id="54302eeb5754e"></run>
'''Aufgabe 2'''
Entwickeln Sie eine Methode ''kann_springen'', die folgende Parameter entgegennimmt:
# das Spielfeld-Array
# ''zeile_alt'' und ''spalte_alt'' für die Position des Spielsteins, der bewegt werden soll
# ''zeile_neu'' und ''spalte_neu'' für die vom Nutzer gewünschte neue Position des Spielsteins
Die Methode soll nur überprüfen, ob dieser Spielzug nach obiger Beschreibung den gegnerischen Spieler schlägt (Rückgabe true) oder nicht (Rückgabe false).
<code id="54302eeb573ff">
boolean kann_springen(String[][]array, int zeile_alt, int spalte_alt, int zeile_neu, int spalte_neu){
boolean ergebnis = false;
if(array[zeile_neu][spalte_neu].equals("|_")){
if(array[zeile_alt][spalte_alt].equals("|1")){
if((zeile_neu - zeile_alt)==2){
if((spalte_neu - spalte_alt)==2){
if(array[zeile_neu-1][spalte_neu-1].equals("|2")){
ergebnis = true;
}
}
if((spalte_neu - spalte_alt)== -2){
if(array[zeile_neu-1][spalte_neu+1].equals("|2")){
ergebnis = true;
}
}
}
}
if(array[zeile_alt][spalte_alt].equals("|2")){
if((zeile_neu - zeile_alt)== -2){
if((spalte_neu - spalte_alt)==2){
if(array[zeile_neu+1][spalte_neu-1].equals("|1")){
ergebnis = true;
}
}
if((spalte_neu - spalte_alt)== -2){
if(array[zeile_neu+1][spalte_neu+1].equals("|1")){
ergebnis = true;
}
}
}
}
}
return ergebnis;
}
</code>
<run id="54302eeb5760e"></run>
'''Aufgabe 3'''
Entwickeln Sie eine Methode ''springen'', die folgende Parameter entgegennimmt:
# das Spielfeld-Array
# ''zeile_alt'' und ''spalte_alt'' für die Position des Spielsteins, der bewegt werden soll
# ''zeile_neu'' und ''spalte_neu'' für die vom Nutzer gewünschte neue Position des Spielsteins
Die Methode soll das ''Schlagen'' bzw. ''Springen'' durchführen, d.h. das Spielfeld-Array soll modifiziert und anschließend zurückgegeben werden. Wir gehen davon aus, dass der Spielzug gültig ist und die Bedingungen zum Springen gegeben sind. Gehen Sie wie folgt vor:
# Die Methode ''setze_spielstein'' können Sie aufrufen, um zunächst den Spielstein zu versetzen.
# Anschließend müssen Sie den gegnerischen Stein vom Spielfeld entfernen. An welcher Position sich dieser befindet, müssen Sie anhand der Parameter berechnen.
<code id="54302eeb57493">
String[][] springen(String[][]array,int zeile_alt, int spalte_alt, int zeile_neu, int spalte_neu){
if(array[zeile_alt][spalte_alt].equals("|1")){
array = setze_spielstein(array, ("1"), zeile_alt, spalte_alt, zeile_neu, spalte_neu);
if((spalte_neu-spalte_alt) == 2){
if((array[zeile_neu-1][spalte_neu-1].equals("|2"))){
array[zeile_neu-1][spalte_neu-1] = ("|_");
}
}
if((spalte_neu-spalte_alt)== -2){
if((array[zeile_neu-1][spalte_neu+1].equals("|2"))){
array[zeile_neu-1][spalte_neu+1] = ("|_");
}
}
}
if(array[zeile_alt][spalte_alt].equals("|2")){
array = setze_spielstein(array, ("2"), zeile_alt, spalte_alt, zeile_neu, spalte_neu);
if((spalte_neu - spalte_alt)== 2){
if((array[zeile_neu+1][spalte_neu-1].equals("|1"))){
array[zeile_neu+1][spalte_neu-1] = ("|_");
}
}
if((spalte_neu - spalte_alt)== -2){
if((array[zeile_neu+1][spalte_neu+1].equals("|1"))){
array[zeile_neu+1][spalte_neu+1] = ("|_");
}
}
}
return array;
}
</code>
Testen Sie die Methode wie folgt:
# Erzeugen Sie sich ein 2D-Array mit der Methode ''erstelle_spielfeld''.
# Initialisieren Sie das Spielfeld mit der Methode ''setze_alle_steine''.
# Geben Sie das Spielfeld mit der Methode ''drucke_spielfeld'' aus.
# Überlegen Sie sich einen Spielzug für einen der beiden Spieler.
# Wenn die Methoden ''ist_gültig'' und die Methode ''kann_springen'' true zurückgeben, rufen Sie die Methode ''springen'' auf und drucken Sie das Spielfeld.
# Wenn die Methode ''ist_gültig'' true zurückgibt und die Methode ''kann_springen'' false zurückgibt, rufen Sie die Methode ''setze_spielstein'' auf und drucken Sie das Spielfeld.
# Stellen Sie ein kleines Spielszenario manuell nach, indem Sie die Schritte 4 bis 6 mit unterschiedlichen gültigen und ungültigen Spielzügen für beide Spieler wiederholen.
<run id="54233d62d265a">
String[][] array=erstelle_spielfeld();
array = setze_damen(array);
drucke_spielfeld(array);
System.out.println();
//Spielzug 1 (Spieler 1)
if(ist_gültig(array, 2, 5, 3, 4) && kann_springen(array, 2, 5, 3, 4)){
array = springen(array, 2, 5, 3, 4);
drucke_spielfeld(array);
System.out.println();
}
if(ist_gültig(array, 2, 5, 3, 4) && !kann_springen(array, 2, 5, 3, 4)){
array =setze_spielstein(array, ("1"), 2, 5, 3, 4);
drucke_spielfeld(array);
System.out.println();
}
//Spielzug 2 (Spieler 2)
if(ist_gültig(array, 5, 2, 4, 3) && kann_springen(array, 5, 2, 4, 3)){
array = springen(array, 5, 2, 4, 3);
drucke_spielfeld(array);
System.out.println();
}
if(ist_gültig(array, 5, 2, 4, 3) && !kann_springen(array, 5, 2, 4, 3)){
array =setze_spielstein(array, ("2"), 5, 2, 4, 3);
drucke_spielfeld(array);
System.out.println();
}
//Spielzug 3 (Spieler 1)
if(ist_gültig(array, 3, 4, 5, 2) && kann_springen(array, 3, 4, 5, 2)){
array = springen(array, 3, 4, 5, 2);
drucke_spielfeld(array);
System.out.println();
}
if(ist_gültig(array, 3, 4, 5, 2) && !kann_springen(array, 3, 4, 5, 2)){
array =setze_spielstein(array, ("1"), 3, 4, 5, 2);
drucke_spielfeld(array);
System.out.println();
}
</run>
'''Aufgabe 4 (Zusatzaufgabe)'''
Erreicht ein Spielstein die gegnerische Grundlinie, wird er zur Dame ''befördert''.
Dies wird kenntlich gemacht, indem ein zweiter Stein obenauf gesetzt wird.
Er darf nun vorwärts und rückwärts ziehen und springen.
Entwickeln Sie eine Methode, die ein Spielfeld-Array als Parameter entgegennimmt und die Spielsteine ''befördert'', die sich auf der gegnerischen Grundlinie befinden. Für die beförderten Spielsteine jedes Spielers müssen Sie sich einen zusätzlichen String überlegen (z.B. "D" und "E"). Dieser String soll für die "beförderten" Spielsteine den ursprünglichen Spielstein im Array ersetzen. Geben Sie das Array anschließend zurück.
<code id="5423449a27d5f">
String[][] befördern(String[][]array){
for(int i=0; i<8; i++){
if(array[0][i].equals("|2")){
array[0][i] = ("|B");
}
}
for(int j=0; j<8; j++){
if(array[7][j].equals("|1")){
array[7][j] = ("|A");
}
}
return array;
}
</code>
<run id="5423449a27f3d">
String[][]array=erstelle_spielfeld();
array = setze_damen(array);
drucke_spielfeld(array);
array =setze_spielstein(array, ("1"), 1, 0, 7, 0);
System.out.println();
drucke_spielfeld(array);
array =befördern(array);
System.out.println();
drucke_spielfeld(array);
</run>
'''Aufgabe 5 (Zusatzaufgabe)'''
Erweitern Sie die Methoden ''ist_gültig'' und ''kann_springen'' so, dass auch beförderte Spielsteine berücksichtigt werden, die rückwärts ziehen dürfen. Die Methode ''springen'' muss ggf. mit angepasst werden.
<code id="5423449a27dec">
boolean ist_gültig(String[][]array, int zeile_alt, int spalte_alt, int zeile_neu, int spalte_neu){
boolean ergebnis = false;
if(array[zeile_neu][spalte_neu].equals("|_")){
if(array[zeile_alt][spalte_alt].equals("|A")){
if((Math.abs(zeile_neu - zeile_alt))==1){
if((Math.abs(spalte_neu - spalte_alt))==1){
ergebnis = true;
}
}
if((zeile_neu - zeile_alt)==2){
if((spalte_neu - spalte_alt)==2){
if((array[zeile_neu-1][spalte_neu-1].equals("|2")) || (array[zeile_neu-1][spalte_neu-1].equals("|B"))){
ergebnis=true;
}
}
if((spalte_neu - spalte_alt)== -2){
if((array[zeile_neu-1][spalte_neu+1].equals("|2")) || (array[zeile_neu-1][spalte_neu+1].equals("|B"))){
ergebnis =true;
}
}
}
if((zeile_neu - zeile_alt)== -2){
if((spalte_neu - spalte_alt)==2){
if((array[zeile_neu+1][spalte_neu-1].equals("|2")) || (array[zeile_neu+1][spalte_neu-1].equals("|B"))){
ergebnis=true;
}
}
if((spalte_neu - spalte_alt)== -2){
if((array[zeile_neu+1][spalte_neu+1].equals("|2")) || (array[zeile_neu+1][spalte_neu+1].equals("|B"))){
ergebnis =true;
}
}
}
}
if(array[zeile_alt][spalte_alt].equals("|B")){
if((Math.abs(zeile_neu - zeile_alt))== 1){
if((Math.abs(spalte_neu - spalte_alt))==1){
ergebnis = true;
}
}
if((zeile_neu - zeile_alt)== -2){
if((spalte_neu - spalte_alt)==2){
if((array[zeile_neu+1][spalte_neu-1].equals("|1")) || (array[zeile_neu+1][spalte_neu-1].equals("|A"))){
ergebnis = true;
}
}
if((spalte_neu - spalte_alt)== -2){
if((array[zeile_neu+1][spalte_neu+1].equals("|1")) || (array[zeile_neu+1][spalte_neu+1].equals("|A"))){
ergebnis = true;
}
}
}
if((zeile_neu - zeile_alt)==2){
if((spalte_neu - spalte_alt)==2){
if((array[zeile_neu-1][spalte_neu-1].equals("|1")) || (array[zeile_neu-1][spalte_neu-1].equals("|A"))){
ergebnis = true;
}
}
if((spalte_neu - spalte_alt)== -2){
if((array[zeile_neu-1][spalte_neu+1].equals("|1")) || (array[zeile_neu-1][spalte_neu+1].equals("|A"))){
ergebnis = true;;
}
}
}
}
if(array[zeile_alt][spalte_alt].equals("|1")){
if((zeile_neu - zeile_alt)==1){
if((Math.abs(spalte_neu - spalte_alt))==1){
ergebnis = true;
}
}
if((zeile_neu - zeile_alt)==2){
if((spalte_neu - spalte_alt)==2){
if((array[zeile_neu-1][spalte_neu-1].equals("|2")) || (array[zeile_neu-1][spalte_neu-1].equals("|B"))){
ergebnis = true;
}
}
if((spalte_neu - spalte_alt)== -2){
if((array[zeile_neu-1][spalte_neu+1].equals("|2")) || (array[zeile_neu-1][spalte_neu+1].equals("|B"))){
ergebnis = true;
}
}
}
}
if(array[zeile_alt][spalte_alt].equals("|2")){
if((zeile_neu - zeile_alt)== -1){
if((Math.abs(spalte_neu - spalte_alt))==1){
ergebnis = true;
}
}
if((zeile_neu - zeile_alt)== -2){
if((spalte_neu - spalte_alt)==2){
if((array[zeile_neu+1][spalte_neu-1].equals("|1")) || (array[zeile_neu+1][spalte_neu-1].equals("|A"))){
ergebnis = true;
}
}
if((spalte_neu - spalte_alt)== -2){
if((array[zeile_neu+1][spalte_neu+1].equals("|1")) || (array[zeile_neu+1][spalte_neu+1].equals("|A"))){
ergebnis = true;
}
}
}
}
}
return ergebnis;
}
</code>
<code id="5423449a27e70">
boolean kann_springen(String[][]array, int zeile_alt, int spalte_alt, int zeile_neu, int spalte_neu){
boolean ergebnis = false;
if(array[zeile_neu][spalte_neu].equals("|_")){
if(array[zeile_alt][spalte_alt].equals("|A")){
if((Math.abs(zeile_neu - zeile_alt))==2){
if((spalte_neu - spalte_alt)==2){
if((array[zeile_neu-1][spalte_neu-1].equals("|2")) || (array[zeile_neu-1][spalte_neu-1].equals("|B"))){
ergebnis = true;
}
if((array[zeile_neu+1][spalte_neu-1].equals("|2")) || (array[zeile_neu+1][spalte_neu-1].equals("|B"))){
ergebnis = true;
} }
if((spalte_neu - spalte_alt)== -2){
if((array[zeile_neu-1][spalte_neu+1].equals("|2")) || (array[zeile_neu-1][spalte_neu+1].equals("|B"))){
ergebnis = true;
}
if((array[zeile_neu+1][spalte_neu+1].equals("|2")) || (array[zeile_neu+1][spalte+neu-1].equals("|B"))){
ergebnis = true;
} }
}
}
if(array[zeile_alt][spalte_alt].equals("|B")){
if((Math.abs(zeile_neu - zeile_alt))== -2){
if((spalte_neu - spalte_alt)==2){
if((array[zeile_neu+1][spalte_neu-1].equals("|1")) || (array[zeile_neu+1][spalte_neu-1].equals("|A"))){
ergebnis = true;
}
if((array[zeile_neu-1][spalte_neu-1].equals("|1")) || (array[zeile_neu-1][spalte_neu-1].equals("|A"))){
ergebnis = true;
} }
if((spalte_neu - spalte_alt)== -2){
if((array[zeile_neu+1][spalte_neu+1].equals("|1")) || (array[zeile_neu+1][spalte_neu+1].equals("|A"))){
ergebnis = true;
}
if((array[zeile_neu-1][spalte_neu+1].equals("|1")) || (array[zeile_neu-1][spalte_neu+1].equals("|A"))){
ergebnis = true;
} }
}
}
if(array[zeile_alt][spalte_alt].equals("|1")){
if((zeile_neu - zeile_alt)==2){
if((spalte_neu - spalte_alt)==2){
if((array[zeile_neu-1][spalte_neu-1].equals("|2")) || (array[zeile_neu-1][spalte_neu-1].equals("|B"))){
ergebnis = true;
}
}
if((spalte_neu - spalte_alt)== -2){
if((array[zeile_neu-1][spalte_neu+1].equals("|2")) || (array[zeile_neu-1][spalte_neu+1].equals("|B"))){
ergebnis = true;
}
}
}
}
if(array[zeile_alt][spalte_alt].equals("|2")){
if((zeile_neu - zeile_alt)== -2){
if((spalte_neu - spalte_alt)==2){
if((array[zeile_neu+1][spalte_neu-1].equals("|1")) || (array[zeile_neu+1][spalte_neu-1].equals("|A"))){
ergebnis = true;
}
}
if((spalte_neu - spalte_alt)== -2){
if((array[zeile_neu+1][spalte_neu+1].equals("|1")) || (array[zeile_neu+1][spalte_neu+1].equals("|A"))){
ergebnis = true;
}
}
}
}
}
return ergebnis;
}
</code>
<code id="543134ba7b79e">
String[][] springen(String[][]array,int zeile_alt, int spalte_alt, int zeile_neu, int spalte_neu){
if(array[zeile_alt][spalte_alt].equals("|A")){
array = setze_spielstein(array, ("A"), zeile_alt, spalte_alt, zeile_neu, spalte_neu);
if((zeile_neu - zeile_alt)==2){
if((spalte_neu - spalte_alt)==2){
if((array[zeile_neu-1][spalte_neu-1].equals("|2")) || (array[zeile_neu-1][spalte_neu-1].equals("|B"))){
array[zeile_neu-1][spalte_neu-1] = ("|_");
}
}
if((spalte_neu - spalte_alt)== -2){
if((array[zeile_neu-1][spalte_neu+1].equals("|2")) || (array[zeile_neu-1][spalte_neu+1].equals("|B"))){
array[zeile_neu-1][spalte_neu+1] = ("|_");
}
}
}
if((zeile_neu - zeile_alt)== -2){
if((spalte_neu - spalte_alt)==2){
if((array[zeile_neu+1][spalte_neu-1].equals("|2")) || (array[zeile_neu+1][spalte_neu-1].equals("|B"))){
array[zeile_neu+1][spalte_neu-1] = ("|_");
}
}
if((spalte_neu - spalte_alt)== -2){
if((array[zeile_neu+1][spalte_neu+1].equals("|2")) || (array[zeile_neu+1][spalte_neu+1].equals("|B"))){
array[zeile_neu+1][spalte_neu+1] =("|_");
}
}
}
}
if(array[zeile_alt][spalte_alt].equals("|B")){
array = setze_spielstein(array, ("B"), zeile_alt, spalte_alt, zeile_neu, spalte_neu);
if((zeile_neu - zeile_alt)== -2){
if((spalte_neu - spalte_alt)==2){
if((array[zeile_neu+1][spalte_neu-1].equals("|1")) || (array[zeile_neu+1][spalte_neu-1].equals("|A"))){
ergebnis = true;
}
}
if((spalte_neu - spalte_alt)== -2){
if((array[zeile_neu+1][spalte_neu+1].equals("|1")) || (array[zeile_neu+1][spalte_neu+1].equals("|A"))){
ergebnis = true;
}
}
}
if((zeile_neu - zeile_alt)==2){
if((spalte_neu - spalte_alt)==2){
if((array[zeile_neu-1][spalte_neu-1].equals("|1")) || (array[zeile_neu-1][spalte_neu-1].equals("|A"))){
array[zeile_neu-1][spalte_neu-1] = ("|_");
}
}
if((spalte_neu - spalte_alt)== -2){
if((array[zeile_neu-1][spalte_neu+1].equals("|1")) || (array[zeile_neu-1][spalte_neu+1].equals("|A"))){
array[zeile_neu-1][spalte_neu+1] = ("|_");
}
}
}
}
if(array[zeile_alt][spalte_alt].equals("|1")){
array = setze_spielstein(array, ("1"), zeile_alt, spalte_alt, zeile_neu, spalte_neu);
if((spalte_neu-spalte_alt) == 2){
if((array[zeile_neu-1][spalte_neu-1].equals("|2")) || (array[zeile_neu-1][spalte_neu-1].equals("|B"))){
array[zeile_neu-1][spalte_neu-1] = ("|_");
}
}
if((spalte_neu-spalte_alt)== -2){
if((array[zeile_neu-1][spalte_neu+1].equals("|2")) || (array[zeile_neu-1][spalte_neu+1].equals("|B"))){
array[zeile_neu-1][spalte_neu+1] = ("|_");
}
}
}
if(array[zeile_alt][spalte_alt].equals("|2")){
array = setze_spielstein(array, ("2"), zeile_alt, spalte_alt, zeile_neu, spalte_neu);
if((spalte_neu - spalte_alt)== 2){
if((array[zeile_neu+1][spalte_neu-1].equals("|1")) || (array[zeile_neu+1][spalte_neu-1].equals("|A"))){
array[zeile_neu+1][spalte_neu-1] = ("|_");
}
}
if((spalte_neu - spalte_alt)== -2){
if((array[zeile_neu+1][spalte_neu+1].equals("|1")) || (array[zeile_neu+1][spalte_neu+1].equals("|A"))){
array[zeile_neu+1][spalte_neu+1] = ("|_");
}
}
}
return array;
}
</code>
<run id="5423449a27fc8">
String[][]array=erstelle_spielfeld();
array = setze_damen(array);
drucke_spielfeld(array);
System.out.println();
array =setze_spielstein(array, ("1"), 1, 0, 7, 0);
array = befördern(array);
drucke_spielfeld(array);
System.out.println();
</run>