the undo button works
This commit is contained in:
parent
31fbc1debd
commit
beb7f07d84
|
|
@ -158,6 +158,7 @@ public class Board {
|
||||||
else {
|
else {
|
||||||
outputString+= "1";
|
outputString+= "1";
|
||||||
}
|
}
|
||||||
|
outputString += "\n";
|
||||||
return outputString;
|
return outputString;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -382,6 +383,15 @@ public class Board {
|
||||||
else {
|
else {
|
||||||
enPassant = true;
|
enPassant = true;
|
||||||
}
|
}
|
||||||
|
enPassant = false;
|
||||||
|
kingWMoved = false;
|
||||||
|
kingBMoved = false;
|
||||||
|
rookLWMoved = false;
|
||||||
|
rookRWMoved = false;
|
||||||
|
rookLBMoved = false;
|
||||||
|
rookRBMoved = false;
|
||||||
|
castling = false;
|
||||||
|
castlingDone = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The following methods require more work ! */
|
/* The following methods require more work ! */
|
||||||
|
|
@ -753,8 +763,64 @@ public class Board {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void undoLastMove() {
|
public void undoLastMove() {
|
||||||
//TODO
|
if(turnNumber == 0) {
|
||||||
|
String lastBoard = previousBoard.get(turnNumber); // we have a String but we need a String[] in order to use the constructer
|
||||||
|
String[] oldBoard = new String[10];
|
||||||
|
boolean complete = false;
|
||||||
|
int indexLine=0;
|
||||||
|
int indexColumn=0;
|
||||||
|
for(int i=0; i<10; i++) {
|
||||||
|
oldBoard[i] = "";
|
||||||
|
}
|
||||||
|
while (complete == false) {
|
||||||
|
if (lastBoard.charAt(indexColumn) == '\n') {
|
||||||
|
indexLine+=1;
|
||||||
|
if (indexLine == 10) {
|
||||||
|
complete= true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
oldBoard[indexLine] += lastBoard.charAt(indexColumn);
|
||||||
|
}
|
||||||
|
indexColumn+=1;
|
||||||
|
}
|
||||||
|
Board undo = new Board(oldBoard);
|
||||||
|
this.pieces = undo.pieces;
|
||||||
|
this.xTwo=undo.xTwo;
|
||||||
|
this.yTwo=undo.yTwo;
|
||||||
|
this.enPassant=undo.enPassant;
|
||||||
|
this.lastTurnPawnTwo=undo.lastTurnPawnTwo;
|
||||||
|
}
|
||||||
|
if (turnNumber != 0 ) {
|
||||||
|
turnNumber -= 1;
|
||||||
|
String lastBoard = previousBoard.get(turnNumber); // we have a String but we need a String[] in order to use the constructer
|
||||||
|
String[] oldBoard = new String[10];
|
||||||
|
boolean complete = false;
|
||||||
|
int indexLine=0;
|
||||||
|
int indexColumn=0;
|
||||||
|
for(int i=0; i<10; i++) {
|
||||||
|
oldBoard[i] = "";
|
||||||
|
}
|
||||||
|
while (complete == false) {
|
||||||
|
if (lastBoard.charAt(indexColumn) == '\n') {
|
||||||
|
indexLine+=1;
|
||||||
|
if (indexLine == 10) {
|
||||||
|
complete= true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
oldBoard[indexLine] += lastBoard.charAt(indexColumn);
|
||||||
|
}
|
||||||
|
indexColumn+=1;
|
||||||
|
}
|
||||||
|
Board undo = new Board(oldBoard);
|
||||||
|
this.pieces = undo.pieces;
|
||||||
|
this.xTwo=undo.xTwo;
|
||||||
|
this.yTwo=undo.yTwo;
|
||||||
|
this.enPassant=undo.enPassant;
|
||||||
|
this.lastTurnPawnTwo=undo.lastTurnPawnTwo;
|
||||||
|
previousBoard.remove(turnNumber+1);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue