add simulators for testing
This commit is contained in:
30
app/src/main/java/chess/simulator/FoolCheckMate.java
Normal file
30
app/src/main/java/chess/simulator/FoolCheckMate.java
Normal file
@@ -0,0 +1,30 @@
|
||||
package chess.simulator;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import chess.controller.CommandExecutor;
|
||||
import chess.model.Coordinate;
|
||||
import chess.model.Move;
|
||||
|
||||
public class FoolCheckMate extends Simulator {
|
||||
|
||||
public FoolCheckMate(CommandExecutor commandExecutor) {
|
||||
super(commandExecutor);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Move> getMoves() {
|
||||
List<Move> moves = Arrays.asList(
|
||||
// white pawn
|
||||
new Move(new Coordinate(5, 6), new Coordinate(5, 5)),
|
||||
// black pawn
|
||||
new Move(new Coordinate(4, 1), new Coordinate(4, 3)),
|
||||
// 2nd white pawn
|
||||
new Move(new Coordinate(6, 6), new Coordinate(6, 4)),
|
||||
// black queen
|
||||
new Move(new Coordinate(3, 0), new Coordinate(7, 4)));
|
||||
|
||||
return moves;
|
||||
}
|
||||
}
|
||||
39
app/src/main/java/chess/simulator/PromoteTest.java
Normal file
39
app/src/main/java/chess/simulator/PromoteTest.java
Normal file
@@ -0,0 +1,39 @@
|
||||
package chess.simulator;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import chess.controller.CommandExecutor;
|
||||
import chess.model.Coordinate;
|
||||
import chess.model.Move;
|
||||
|
||||
public class PromoteTest extends Simulator{
|
||||
|
||||
public PromoteTest(CommandExecutor commandExecutor) {
|
||||
super(commandExecutor);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<Move> getMoves() {
|
||||
List<Move> moves = Arrays.asList(
|
||||
// white pawn
|
||||
new Move(new Coordinate(5, 6), new Coordinate(5, 4)),
|
||||
// black pawn
|
||||
new Move(new Coordinate(4, 1), new Coordinate(4, 3)),
|
||||
// white pawn capture
|
||||
new Move(new Coordinate(5, 4), new Coordinate(4, 3)),
|
||||
// black king
|
||||
new Move(new Coordinate(4, 0), new Coordinate(4, 1)),
|
||||
// white pawn moves
|
||||
new Move(new Coordinate(4, 3), new Coordinate(4, 2)),
|
||||
// black king
|
||||
new Move(new Coordinate(4, 1), new Coordinate(5, 2)),
|
||||
// white pawn moves
|
||||
new Move(new Coordinate(4, 2), new Coordinate(4, 1)),
|
||||
// black king
|
||||
new Move(new Coordinate(5, 2), new Coordinate(6, 2))
|
||||
);
|
||||
return moves;
|
||||
}
|
||||
|
||||
}
|
||||
27
app/src/main/java/chess/simulator/Simulator.java
Normal file
27
app/src/main/java/chess/simulator/Simulator.java
Normal file
@@ -0,0 +1,27 @@
|
||||
package chess.simulator;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import chess.controller.CommandExecutor;
|
||||
import chess.controller.commands.MoveCommand;
|
||||
import chess.controller.event.GameAdaptator;
|
||||
import chess.model.Move;
|
||||
|
||||
public abstract class Simulator extends GameAdaptator{
|
||||
|
||||
protected final CommandExecutor commandExecutor;
|
||||
|
||||
public Simulator(CommandExecutor commandExecutor) {
|
||||
this.commandExecutor = commandExecutor;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGameStart() {
|
||||
for (Move move : getMoves()) {
|
||||
this.commandExecutor.executeCommand(new MoveCommand(move));
|
||||
}
|
||||
}
|
||||
|
||||
protected abstract List<Move> getMoves();
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user