Skip to content
Snippets Groups Projects
Commit bbcdb604 authored by Alexis Nasr's avatar Alexis Nasr
Browse files

ajout de l'implémentation de la méthode undo dans GameUI

parent 5ceb3355
No related branches found
No related tags found
No related merge requests found
...@@ -23,10 +23,30 @@ public class GameUI { ...@@ -23,10 +23,30 @@ public class GameUI {
public Board getBoard(){ public Board getBoard(){
return null; return null;
} }
public boolean undo(){ public boolean undo(){
if(this.history.empty()) return false;
Move move = this.history.pop();
board.emptyCell(move.destination);
ui.removePiece(move.destination);
if(move.pieceAtDestination != null){
move.pieceAtDestination.setPosition(move.destination);
board.addPiece(move.pieceAtDestination);
ui.placePiece(move.pieceAtDestination.getType(), move.pieceAtDestination.getColor(), move.pieceAtDestination.getPosition());
}
board.emptyCell(move.origin);
ui.removePiece(move.origin);
move.pieceAtOrigin.setPosition(move.origin);
board.addPiece(move.pieceAtOrigin);
ui.placePiece(move.pieceAtOrigin.getType(), move.pieceAtOrigin.getColor(), move.pieceAtOrigin.getPosition());
currentPlayer = move.pieceAtOrigin.getOwner();
if(move.pieceAtDestination != null)
currentPlayer.removeFromScore(move.pieceAtDestination.getValue());
return true; return true;
} }
public boolean isMovePlayable(Move gameMove){ public boolean isMovePlayable(Move gameMove){
return true; return true;
} }
...@@ -57,5 +77,14 @@ public class GameUI { ...@@ -57,5 +77,14 @@ public class GameUI {
} }
public void play(){ public void play(){
int numberOfHits = 0
while(numberOfHits < 50){
Move move = new Move(board,currentPlayer.getFromTo());
if(! isMovePlayable(move)) continue;
numberOfHits ++;
switchPlayer();
}
} }
} }
...@@ -5,27 +5,27 @@ public class TestChess{ ...@@ -5,27 +5,27 @@ public class TestChess{
public static void main(String[] args) { public static void main(String[] args) {
boolean result; boolean resultTest;
/* Test de déplacements autorisés selon les regles de pièces */ /* Test de déplacements autorisés selon les regles de pièces */
System.out.println("authorized moves"); System.out.println("authorized moves");
System.out.print("test 1 : "); System.out.print("test 1 : ");
result = testAuthorizedMove("boardConfigurationFiles/FullBoard.txt", new Coordinates(0,1), new Coordinates(0,2)); resultTest = testAuthorizedMove("boardConfigurationFiles/FullBoard.txt", new Coordinates(0,1), new Coordinates(0,2));
if(result == true) System.out.println("pass"); else System.out.println("fail"); if(resultTest == true) System.out.println("pass"); else System.out.println("fail");
System.out.print("test 2 : "); System.out.print("test 2 : ");
result = testAuthorizedMove("boardConfigurationFiles/FullBoard.txt", new Coordinates(0,1), new Coordinates(0,4)); resultTest = testAuthorizedMove("boardConfigurationFiles/FullBoard.txt", new Coordinates(0,1), new Coordinates(0,4));
if(result == false) System.out.println("pass"); else System.out.println("fail"); if(resultTest == false) System.out.println("pass"); else System.out.println("fail");
/* Test de déplacements jouables sur l'échiquier actuel, selon les regles du jeu */ /* Test de déplacements jouables sur l'échiquier actuel, selon les regles du jeu */
System.out.println("playable moves"); System.out.println("playable moves");
System.out.print("test 1 : "); System.out.print("test 1 : ");
result = testPlayableMove("boardConfigurationFiles/FullBoard.txt",new Coordinates(0,1),new Coordinates(0,2)); resultTest = testPlayableMove("boardConfigurationFiles/FullBoard.txt",new Coordinates(0,1),new Coordinates(0,2));
if(result == true) System.out.println("pass"); else System.out.println("fail"); if(resultTest == true) System.out.println("pass"); else System.out.println("fail");
System.out.print("test 2 : "); System.out.print("test 2 : ");
result = testPlayableMove("boardConfigurationFiles/FullBoard.txt",new Coordinates(0,1),new Coordinates(0,3)); resultTest = testPlayableMove("boardConfigurationFiles/FullBoard.txt",new Coordinates(0,1),new Coordinates(0,3));
if(result == true) System.out.println("pass"); else System.out.println("fail"); if(resultTest == true) System.out.println("pass"); else System.out.println("fail");
/* Tests de la mise en échec */ /* Tests de la mise en échec */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment