diff --git a/app/src/main/java/chess/SwingMain.java b/app/src/main/java/chess/SwingMain.java index 27d6805..64cce12 100644 --- a/app/src/main/java/chess/SwingMain.java +++ b/app/src/main/java/chess/SwingMain.java @@ -16,11 +16,11 @@ public class SwingMain { Game game = new Game(); CommandExecutor commandExecutor = new CommandExecutor(game); - Window window = new Window(commandExecutor, false); + Window window = new Window(commandExecutor, true); commandExecutor.addListener(window); - AI ai = new AlphaBetaAI(commandExecutor, Color.Black, 5); - commandExecutor.addListener(ai); + // AI ai = new AlphaBetaAI(commandExecutor, Color.Black, 5); + // commandExecutor.addListener(ai); // AI ai2 = new AlphaBetaAI(commandExecutor, Color.White, 5); // commandExecutor.addListener(ai2); diff --git a/app/src/main/java/chess/ai/minimax/GameSimulation.java b/app/src/main/java/chess/ai/minimax/GameSimulation.java index 772e463..1d0c768 100644 --- a/app/src/main/java/chess/ai/minimax/GameSimulation.java +++ b/app/src/main/java/chess/ai/minimax/GameSimulation.java @@ -59,7 +59,7 @@ public class GameSimulation extends GameAdaptator { } @Override - public void onMove(Move move) { + public void onMove(Move move, boolean captured) { sendCommand(new MoveCommand(move)); } diff --git a/app/src/main/java/chess/controller/commands/MoveCommand.java b/app/src/main/java/chess/controller/commands/MoveCommand.java index 08a957b..f0cf59e 100644 --- a/app/src/main/java/chess/controller/commands/MoveCommand.java +++ b/app/src/main/java/chess/controller/commands/MoveCommand.java @@ -75,13 +75,13 @@ public class MoveCommand extends PlayerCommand { } if (tryPromote(game, outputSystem)) { - outputSystem.onMove(this.move); + outputSystem.onMove(this.move, this.deadPiece != null); return CommandResult.ActionNeeded; } board.setLastMove(this.move); - outputSystem.onMove(this.move); + outputSystem.onMove(this.move, this.deadPiece != null); return CommandResult.Moved; } diff --git a/app/src/main/java/chess/controller/event/AsyncGameDispatcher.java b/app/src/main/java/chess/controller/event/AsyncGameDispatcher.java index 49c9343..6dcc3d7 100644 --- a/app/src/main/java/chess/controller/event/AsyncGameDispatcher.java +++ b/app/src/main/java/chess/controller/event/AsyncGameDispatcher.java @@ -81,8 +81,8 @@ public class AsyncGameDispatcher extends GameDispatcher { } @Override - public void onMove(Move move) { - asyncForEachCall((l) -> l.onMove(move)); + public void onMove(Move move, boolean captured) { + asyncForEachCall((l) -> l.onMove(move, captured)); } @Override diff --git a/app/src/main/java/chess/controller/event/EmptyGameDispatcher.java b/app/src/main/java/chess/controller/event/EmptyGameDispatcher.java index 8ad5084..1681d9f 100644 --- a/app/src/main/java/chess/controller/event/EmptyGameDispatcher.java +++ b/app/src/main/java/chess/controller/event/EmptyGameDispatcher.java @@ -32,7 +32,7 @@ public class EmptyGameDispatcher extends GameDispatcher { } @Override - public void onMove(Move move) { + public void onMove(Move move, boolean captured) { } @Override diff --git a/app/src/main/java/chess/controller/event/GameAdaptator.java b/app/src/main/java/chess/controller/event/GameAdaptator.java index 03a3957..b989cb7 100644 --- a/app/src/main/java/chess/controller/event/GameAdaptator.java +++ b/app/src/main/java/chess/controller/event/GameAdaptator.java @@ -38,7 +38,7 @@ public abstract class GameAdaptator implements GameListener { public void onGameEnd() {} @Override - public void onMove(Move move) {} + public void onMove(Move move, boolean captured) {} @Override public void onMoveNotAllowed(Move move) {} diff --git a/app/src/main/java/chess/controller/event/GameListener.java b/app/src/main/java/chess/controller/event/GameListener.java index 7086e93..8cb5a24 100644 --- a/app/src/main/java/chess/controller/event/GameListener.java +++ b/app/src/main/java/chess/controller/event/GameListener.java @@ -41,8 +41,9 @@ public interface GameListener { * Invoked when a valid move on the board occurs * * @param move the move to be processed + * @param captured whether the move is a result of a capture */ - void onMove(Move move); + void onMove(Move move, boolean captured); /** * Invoked when a sent move is not allowed diff --git a/app/src/main/java/chess/view/audio/AudioFiles.java b/app/src/main/java/chess/view/audio/AudioFiles.java index 1b805e2..2ed46d6 100644 --- a/app/src/main/java/chess/view/audio/AudioFiles.java +++ b/app/src/main/java/chess/view/audio/AudioFiles.java @@ -13,8 +13,8 @@ import chess.view.AssetManager; public class AudioFiles { private static final String baseURL = "https://images.chesscomfiles.com/chess-themes/sounds/_WAV_/default/"; - private static final String[] files = { "game-start", "game-end", "capture", "castle", "premove", "move-self", - "move-check", "move-opponent", "promote", "notify", "tenseconds", "illegal" }; + private static final String[] files = { "game-start", "game-end", "capture", "castle", "move-self", + "move-check", "promote", "illegal" }; private static final String filesExtension = ".wav"; private static final String saveDir = "audio/"; diff --git a/app/src/main/java/chess/view/audio/GameAudio.java b/app/src/main/java/chess/view/audio/GameAudio.java index cd3fcf7..76ea17a 100644 --- a/app/src/main/java/chess/view/audio/GameAudio.java +++ b/app/src/main/java/chess/view/audio/GameAudio.java @@ -1,6 +1,8 @@ package chess.view.audio; +import chess.controller.commands.PromoteCommand.PromoteType; import chess.controller.event.GameAdaptator; +import chess.model.Move; public class GameAudio extends GameAdaptator { @@ -28,5 +30,34 @@ public class GameAudio extends GameAdaptator { public void onGameEnd() { playSound("game-end"); } + + @Override + public void onMoveNotAllowed(Move move) { + playSound("illegal"); + } + + @Override + public void onMove(Move move, boolean captured) { + if (captured) { + playSound("capture"); + return; + } + playSound("move-self"); + } + + @Override + public void onKingInCheck() { + playSound("move-check"); + } + + @Override + public void onPawnPromoted(PromoteType promotion) { + playSound("promote"); + } + + @Override + public void onCastling(boolean bigCastling) { + playSound("castle"); + } } diff --git a/app/src/main/java/chess/view/consolerender/Console.java b/app/src/main/java/chess/view/consolerender/Console.java index 559ff54..101eee5 100644 --- a/app/src/main/java/chess/view/consolerender/Console.java +++ b/app/src/main/java/chess/view/consolerender/Console.java @@ -270,7 +270,7 @@ public class Console implements GameListener { } @Override - public void onMove(Move move) { + public void onMove(Move move, boolean captured) { } @Override diff --git a/app/src/main/java/chess/view/simplerender/Window.java b/app/src/main/java/chess/view/simplerender/Window.java index 10f6fab..8d0695f 100644 --- a/app/src/main/java/chess/view/simplerender/Window.java +++ b/app/src/main/java/chess/view/simplerender/Window.java @@ -306,7 +306,7 @@ public class Window extends JFrame implements GameListener { } @Override - public void onMove(Move move) {} + public void onMove(Move move, boolean captured) {} @Override public void onMoveNotAllowed(Move move) {