pretty cool
This commit is contained in:
31
app/src/main/java/chess/model/Game.java
Normal file
31
app/src/main/java/chess/model/Game.java
Normal file
@@ -0,0 +1,31 @@
|
||||
package chess.model;
|
||||
|
||||
import chess.model.visitor.PiecePathChecker;
|
||||
import common.Signal0;
|
||||
import common.Signal1;
|
||||
|
||||
public class Game {
|
||||
private final ChessBoard board;
|
||||
|
||||
public final Signal0 OnRenderUpdate = new Signal0();
|
||||
public final Signal1<Move> OnMoveRefused = new Signal1<>();
|
||||
|
||||
public Game(ChessBoard board) {
|
||||
this.board = board;
|
||||
}
|
||||
|
||||
public ChessBoard getBoard() {
|
||||
return board;
|
||||
}
|
||||
|
||||
public void tryMove(Move move) {
|
||||
boolean valid = new PiecePathChecker(board, move).isValid();
|
||||
if (!valid) {
|
||||
this.OnMoveRefused.emit(move);
|
||||
return;
|
||||
}
|
||||
this.board.applyMove(move);
|
||||
this.OnRenderUpdate.emit();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user