HSZG Vorkurs Informatik WS 2014/Damespiel (Alexander Preuß)/Interaktion (Alexander Preuß)
Aus ProgrammingWiki
Wiki-Quelltext dieser Seite.
<language>Java</language>
Die Methoden aus den Arbeitsblättern [[HSZG_Vorkurs_Informatik_WS_2014/Spielfelder | Spielfelder ]] und [[HSZG_Vorkurs_Informatik_WS_2014/Spielregeln | Spielregeln]] können wir nun zu einem interaktiven Dame-Spiel zusammenbauen. Die Nutzerinteraktion wird sich etwas mühselig gestalten, aber beim ersten eigenen Spiel ist das nicht weiter schlimm.
Kopieren Sie zunächst Ihre Methoden aus den oben genannten Arbeitsblättern in diese Codebox:
<code id="5434db4c3786c">
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;
}
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;
}
String[][] befördern(String[][]array){
for(int i=0; i<8; i++){
if(array[0][i].equals("|2")){
array[0][i] = ("|B");
}
if(array[0][i].equals("|B")){
}
if(array[0][i].equals("|A")){
}
}
for(int j=0; j<8; j++){
if(array[7][j].equals("|1")){
array[7][j] = ("|A");
}
if(array[7][j].equals("|A")){
}
if(array[7][j].equals("|B")){
}
}
return array;
}
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;
}
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>
'''Basismethoden zur Nutzerinteraktion'''
Da für das Spiel eine Interaktion mit den beiden menschlichen Spielern erforderlich ist, müssen wir zunächst eine Möglichkeit zur Dateneingabe während des Programmablaufs finden. Das Programming-Wiki stellt uns dafür eine Methode ''eingabe(String text)'' bereit. Der vom Nutzer eingegebene Text wird in einer Variable vom Typ String abgespeichert.
<code id="5434db4c37931" hidden>
String eingabe(String text) {
return JOptionPane.showInputDialog(null, text);
}
void ausgabe(String text){
JOptionPane.showMessageDialog(null,text);
}
</code>
<run id="5434db4c37e88">
String text = eingabe("Geben Sie eine Zahl ein!");
</run>
Im gleichen Stil lässt sich eine Ausgabe erzeugen:
<run id="5434db4c37f4c">
ausgabe("Der Wert ist korrekt!");
</run>
Da es während des Spiels wichtig sein wird, Spielsteinpositionen als Zahlen anzugeben, benötigen wir noch eine Umwandlung von String zu int. Dazu gibt es in Java die Methode ''Integer.parseInt(String text)''. Probieren Sie das gleich mal aus:
<run id="5434db4c37ffe">
String text = eingabe("Geben Sie eine Zahl ein!");
int zahl = Integer.parseInt(text);
System.out.println(zahl);
</run>
Die folgende Codebox zeigt das Grundprinzip einer Nutzerinteraktion, bei der abwechselnd zwei Personen zur Eingabe von Daten aufgefordert werden. In diesem Fall soll die Eingabe einer 0 zum Beenden des Programms führen. Beim Dame-Spiel gibt es eine andere Abbruchbedingung (ein Spieler hat keine Steine mehr auf dem Brett). Außerdem soll die Eingabe einer Zahl < 0 ungültig sein (beim Dame-Spiel sind Eingaben ungültig, die zu ungültigen Spielzügen führen).
<code id="5434db4c379e2">
void interaktion(){
boolean abbruch = false;
while(!abbruch){
String text = eingabe("Spieler 1: Geben Sie eine Zahl ein!");
int zahl = Integer.parseInt(text);
System.out.println(zahl);
if(zahl == 0){
abbruch = true;
}
if(zahl < 0){
ausgabe("Die Zahl ist ungültig!");
}
text = eingabe("Spieler 2: Geben Sie eine Zahl ein!");
zahl = Integer.parseInt(text);
System.out.println(zahl);
if(zahl == 0){
abbruch = true;
}
if(zahl < 0){
ausgabe("Die Zahl ist ungültig!");
}
}
}
</code>
<run id="5434db4c380aa">interaktion();</run>
Wie Sie sehen, gibt es noch ein großes Problem: Die Konsolenausgabe wird erst angezeigt, nachdem das Programm beendet ist. Auf diese Weise lässt sich kein Spiel realisieren, denn wir müssen ja den aktuellen Stand der Spielsteine sehen, wenn wir Spielzüge eingeben wollen. '''Sie müssen also bei Ihrem Spiel komplett auf die Anweisung ''System.out.println(...)'' verzichten und stattdessen die Ein- und Ausgabemethode benutzen!'''
Das bedeutet wiederum, dass wir die Methode ''drucke_spielfeld'' so anpassen müssen, dass sie einen String zurückgibt, anstatt Konsolenausgaben zu erzeugen:
<code id="5434db4c37a9c">
String drucke_spielfeld(String[][] array){
String ergebnis = "";
for(int x=0; x < array.length; x++){
ergebnis = ergebnis + "\n";
for(int y=0; y < array[0].length; y++){
ergebnis = ergebnis + array[x][y];
}
}
return ergebnis;
}
</code>
Eine Ausgabe kann dann z.B. wie folgt aussehen (der Code ist nur eine grobe Skizze, um das Prinzip zu verdeutlichen!):
<code id="5434db4c37b5c">
void interaktion(){
String[][] feld = erstelle_spielfeld();
String feld_string = drucke_spielfeld(feld);
String s = eingabe(feld_string+"\n\n"+"Geben Sie eine Zahl ein!");
//nur um das Prinzip zu zeigen schreibe ich irgendwas in das Array:
feld[3][4] = "X";
feld_string = drucke_spielfeld(feld);
s = eingabe(feld_string+"\n\n"+"Geben Sie eine Zahl ein!");
}
</code>
<run id="5434db4c38156">interaktion()</run>
'''Spielablauf'''
Das Dame-Spiel soll im Prinzip wie folgt ablaufen:
* Am Anfang wird das Spielbrett initialisiert, indem alle 24 Spielsteine positioniert werden. Dafür sollten Sie schon eine Methode parat haben.
* Danach wird abwechselnd Spieler 1 und Spieler 2 dazu aufgefordert, einen Spielzug anzugeben. Ein Spielzug setzt sich jeweils aus 4 Eingaben zusammen:
# die Zeile der alten Position des Steins
# die Spalte der alten Position des Steins
# die Zeile der neuen Position des Steins
# die Spalte der neuen Position des Steins
Für jeden Spieler, der an der Reihe ist, muss also 4 mal die Methode ''eingabe(...)'' aufgerufen werden. In der Dialogbox soll jedesmal das aktuelle Spielfeld mit angezeigt werden, so wie ich das oben demonstriert habe.
Welcher Spielstein gemeint ist, wird also nur anhand der alten Position des Steins ermittelt. Wir gehen zur Vereinfachung davon aus, dass jeder Spieler selbst darauf achtet, nur Positionen seiner eigenen Steine anzugeben und nicht die des Gegners! Außerdem müssen die Spieler Positionen von 0 bis 7 verwenden (und nicht von 1 bis 8).
Nach der Angabe des Spielzugs eines Spielers wird überprüft, ob der Spielzug gültig ist. Wenn nicht, soll der Spieler eine Fehlermeldung erhalten. Dazu können Sie die Methode ''ausgabe(...)'' verwenden. Danach ist sofort der 2. Spieler an der Reihe (oder Sie warten mit einer while-Schleife darauf, bis der Spieler einen korrekten Zug eingegeben hat).
Wenn ein Spielzug gültig ist, soll das Spielfeld entsprechend modifiziert und neu ausgedruckt werden (d.h. Aufruf von ''drucke_spielfeld'' zur Aktualisierung des Strings, der in den Eingabedialogen angezeigt wird). Wenn möglich, soll bei einem Spielzug auch gesprungen werden, wobei ein Spielstein des Gegners vom Feld entfernt wird. Ob Sie die Beförderung von Spielsteinen zur Dame mit berücksichtigen, überlasse ich Ihnen.
Ihr Programm sollte mitzählen, wie viele Steine jeder Spieler noch auf dem Feld hat. Sobald ein Spieler keine Steine mehr besitzt, sollten Sie das Spiel beenden und ausgeben, dass der andere Spieler gewonnen hat.
Ich wünsche viel Erfolg und gutes Gelingen!
Vorsorglich lege ich gleich einmal drei Codeboxen an, falls Sie Hilfsmethoden auslagern möchten.
<code id="5434db4c37c0d">
String pruefen(String[][] array, int[]angaben){
String ergebnis;
array = befördern(array);
boolean gültig = ist_gültig(array, angaben[0], angaben[1], angaben[2], angaben[3]);
boolean darf_springen = kann_springen(array, angaben[0], angaben[1], angaben[2], angaben[3]);
if(gültig){
ergebnis = ("setzen");
if(darf_springen){
ergebnis = ("springen");
}
}else{
ergebnis = ("ungültig");
}
return ergebnis;
}
boolean zählen(String[][]array, boolean abbruch){
int counter1=0;
int counter2=0;
for(q=0; q<array.length; q++){
for(w=0; w<array[0].length; w++){
if((array[q][w].equals("|1")) || (array[q][w].equals("|A"))){
counter1=counter1+1;
}
if((array[q][w].equals("|2")) || (array[q][w].equals("|B"))){
counter2=counter2+1;
}
}
}
if(counter1==0 || counter2==0){
abbruch = true;
}
return abbruch;
}
String zählen_ende(String[][]array){
int counter3=0;
int counter4=0;
for(q=0; q<array.length; q++){
for(w=0; w<array[0].length; w++){
if((array[q][w].equals("|1")) || (array[q][w].equals("|A"))){
counter3=counter3+1;
}
if((array[q][w].equals("|2")) || (array[q][w].equals("|B"))){
counter4=counter4+1;
}
}
}
if(counter3==0){
String ergebnis=("Spieler 2 gewinnt");
return ergebnis;
}
if(counter4==0){
String ergebnis=("Spieler 1 gewinnt");
return ergebnis;
}
}
</code>
<run id="5434db4c38209"></run>
<code id="5434db4c37cc7">
int[] frage_spieler(String[][] array, int spieler){
int[] angaben = new int[4];
String feld_string = drucke_spielfeld(array);
String text1 = eingabe(feld_string+"\n\n"+"Spieler "+spieler+": Zeile der alten Position des Steins");
int zeile_alt = Integer.parseInt(text1);
angaben[0] = zeile_alt;
String text2 = eingabe(feld_string+"\n\n"+"Spieler "+spieler+": Spalte der alten Position des Steins");
int spalte_alt = Integer.parseInt(text2);
angaben[1] = spalte_alt;
String text3 = eingabe(feld_string+"\n\n"+"Spieler "+spieler+": Zeile der neuen Position des Steins");
int zeile_neu = Integer.parseInt(text3);
angaben[2] = zeile_neu;
String text4 = eingabe(feld_string+"\n\n"+"Spieler "+spieler+": Spalte der neuen Position des Steins");
int spalte_neu = Integer.parseInt(text4);
angaben[3] = spalte_neu;
return angaben;
}
</code>
<run id="5434db4c382d9"></run>
<code id="5434db4c37d7c">
void dame(){
String[][] array = erstelle_spielfeld();
array = setze_damen(array);
String feld_string = drucke_spielfeld(array);
String s = eingabe(feld_string+"\n\n");
boolean abbruch = false;
while(!abbruch){
int[] angaben = frage_spieler(array, 1);
String aktion = pruefen(array, angaben);
if(aktion.equals("setzen")){
array = setze_spielstein(array, array[angaben[0]][angaben[1]], angaben[0], angaben[1], angaben[2], angaben[3]);
feld_string = drucke_spielfeld(array);
ausgabe(feld_string+"\n\n");
}
if(aktion.equals("springen")){
array = springen(array, angaben[0], angaben[1], angaben[2], angaben[3]);
feld_string = drucke_spielfeld(array);
ausgabe(feld_string+"\n\n");
}
if(aktion.equals("ungültig")){
ausgabe("Spielzug nicht gültig!");
}
abbruch = zählen(array, abbruch);
int[] angaben = frage_spieler(array, 2);
String aktion = pruefen(array, angaben);
if(aktion.equals("setzen")){
array = setze_spielstein(array, array[angaben[0]][angaben[1]], angaben[0], angaben[1], angaben[2], angaben[3]);
feld_string = drucke_spielfeld(array);
ausgabe(feld_string+"\n\n");
}
if(aktion.equals("springen")){
array = springen(array, angaben[0], angaben[1], angaben[2], angaben[3]);
feld_string = drucke_spielfeld(array);
ausgabe(feld_string+"\n\n");
}
if(aktion.equals("ungültig")){
ausgabe("Spielzug nicht gültig!");
}
abbruch = zählen(array, abbruch);
}
String ende = zählen_ende(array);
ausgabe(ende+"\n\n");
}
</code>
<run id="5434db4c38393">
dame();
</run>