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