mirror of
https://github.com/2OOP/pism.git
synced 2026-02-04 02:44:50 +00:00
Compare commits
4 Commits
a7d1a964c2
...
6e6a383708
| Author | SHA1 | Date | |
|---|---|---|---|
| 6e6a383708 | |||
| b7dec7798b | |||
| 2caa4fc79f | |||
| e72d888d84 |
@@ -19,7 +19,7 @@ import org.toop.framework.networking.connection.events.NetworkEvents;
|
|||||||
import org.toop.framework.networking.connection.types.NetworkingConnector;
|
import org.toop.framework.networking.connection.types.NetworkingConnector;
|
||||||
import org.toop.framework.game.players.ArtificialPlayer;
|
import org.toop.framework.game.players.ArtificialPlayer;
|
||||||
import org.toop.framework.game.players.OnlinePlayer;
|
import org.toop.framework.game.players.OnlinePlayer;
|
||||||
import org.toop.framework.game.players.RandomAI;
|
import org.toop.framework.game.players.ai.RandomAI;
|
||||||
import org.toop.framework.networking.server.gateway.NettyGatewayServer;
|
import org.toop.framework.networking.server.gateway.NettyGatewayServer;
|
||||||
import org.toop.local.AppContext;
|
import org.toop.local.AppContext;
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
package org.toop.app.canvas;
|
package org.toop.app.canvas;
|
||||||
|
|
||||||
import javafx.scene.canvas.Canvas;
|
import javafx.scene.canvas.Canvas;
|
||||||
|
import org.toop.framework.gameFramework.model.game.TurnBasedGame;
|
||||||
|
|
||||||
public interface GameCanvas extends GameDrawer{
|
public interface GameCanvas {
|
||||||
Canvas getCanvas();
|
Canvas getCanvas();
|
||||||
|
void redraw(TurnBasedGame gameCopy);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
package org.toop.app.canvas;
|
|
||||||
|
|
||||||
import org.toop.framework.gameFramework.model.game.TurnBasedGame;
|
|
||||||
|
|
||||||
public interface GameDrawer {
|
|
||||||
void redraw(TurnBasedGame gameCopy);
|
|
||||||
}
|
|
||||||
@@ -10,7 +10,7 @@ import org.toop.app.widget.view.GameView;
|
|||||||
import org.toop.framework.eventbus.EventFlow;
|
import org.toop.framework.eventbus.EventFlow;
|
||||||
import org.toop.framework.eventbus.GlobalEventBus;
|
import org.toop.framework.eventbus.GlobalEventBus;
|
||||||
import org.toop.framework.gameFramework.controller.GameController;
|
import org.toop.framework.gameFramework.controller.GameController;
|
||||||
import org.toop.framework.gameFramework.model.game.SupportsOnlinePlay;
|
import org.toop.framework.gameFramework.model.game.threadBehaviour.SupportsOnlinePlay;
|
||||||
import org.toop.framework.gameFramework.model.game.TurnBasedGame;
|
import org.toop.framework.gameFramework.model.game.TurnBasedGame;
|
||||||
import org.toop.framework.gameFramework.model.game.threadBehaviour.ThreadBehaviour;
|
import org.toop.framework.gameFramework.model.game.threadBehaviour.ThreadBehaviour;
|
||||||
import org.toop.framework.gameFramework.model.player.Player;
|
import org.toop.framework.gameFramework.model.player.Player;
|
||||||
|
|||||||
@@ -6,8 +6,6 @@ import org.toop.app.gameControllers.ReversiBitController;
|
|||||||
import org.toop.app.gameControllers.TicTacToeBitController;
|
import org.toop.app.gameControllers.TicTacToeBitController;
|
||||||
import org.toop.framework.gameFramework.controller.GameController;
|
import org.toop.framework.gameFramework.controller.GameController;
|
||||||
import org.toop.framework.gameFramework.model.player.Player;
|
import org.toop.framework.gameFramework.model.player.Player;
|
||||||
import org.toop.framework.game.games.reversi.BitboardReversi;
|
|
||||||
import org.toop.framework.game.games.tictactoe.BitboardTicTacToe;
|
|
||||||
import org.toop.framework.game.players.ArtificialPlayer;
|
import org.toop.framework.game.players.ArtificialPlayer;
|
||||||
import org.toop.framework.game.players.LocalPlayer;
|
import org.toop.framework.game.players.LocalPlayer;
|
||||||
import org.toop.app.widget.Primitive;
|
import org.toop.app.widget.Primitive;
|
||||||
@@ -15,8 +13,8 @@ import org.toop.app.widget.complex.PlayerInfoWidget;
|
|||||||
import org.toop.app.widget.complex.ViewWidget;
|
import org.toop.app.widget.complex.ViewWidget;
|
||||||
import org.toop.app.widget.popup.ErrorPopup;
|
import org.toop.app.widget.popup.ErrorPopup;
|
||||||
import org.toop.app.widget.tutorial.*;
|
import org.toop.app.widget.tutorial.*;
|
||||||
import org.toop.framework.game.players.MiniMaxAI;
|
import org.toop.framework.game.players.ai.MiniMaxAI;
|
||||||
import org.toop.framework.game.players.RandomAI;
|
import org.toop.framework.game.players.ai.RandomAI;
|
||||||
import org.toop.local.AppContext;
|
import org.toop.local.AppContext;
|
||||||
|
|
||||||
import javafx.geometry.Pos;
|
import javafx.geometry.Pos;
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import org.toop.framework.eventbus.EventFlow;
|
|||||||
import org.toop.framework.gameFramework.model.game.threadBehaviour.AbstractThreadBehaviour;
|
import org.toop.framework.gameFramework.model.game.threadBehaviour.AbstractThreadBehaviour;
|
||||||
import org.toop.framework.gameFramework.view.GUIEvents;
|
import org.toop.framework.gameFramework.view.GUIEvents;
|
||||||
import org.toop.framework.gameFramework.model.game.TurnBasedGame;
|
import org.toop.framework.gameFramework.model.game.TurnBasedGame;
|
||||||
import org.toop.framework.gameFramework.model.game.SupportsOnlinePlay;
|
import org.toop.framework.gameFramework.model.game.threadBehaviour.SupportsOnlinePlay;
|
||||||
import org.toop.framework.gameFramework.model.player.Player;
|
import org.toop.framework.gameFramework.model.player.Player;
|
||||||
import org.toop.framework.game.players.OnlinePlayer;
|
import org.toop.framework.game.players.OnlinePlayer;
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package org.toop.framework.game.players;
|
package org.toop.framework.game.players.ai;
|
||||||
|
|
||||||
import org.toop.framework.gameFramework.GameState;
|
import org.toop.framework.gameFramework.GameState;
|
||||||
import org.toop.framework.gameFramework.model.game.PlayResult;
|
import org.toop.framework.gameFramework.model.game.PlayResult;
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package org.toop.framework.game.players;
|
package org.toop.framework.game.players.ai;
|
||||||
|
|
||||||
import org.toop.framework.gameFramework.model.game.TurnBasedGame;
|
import org.toop.framework.gameFramework.model.game.TurnBasedGame;
|
||||||
import org.toop.framework.gameFramework.model.player.AbstractAI;
|
import org.toop.framework.gameFramework.model.player.AbstractAI;
|
||||||
@@ -1,9 +1,8 @@
|
|||||||
package org.toop.framework.gameFramework.controller;
|
package org.toop.framework.gameFramework.controller;
|
||||||
|
|
||||||
import org.toop.framework.gameFramework.model.game.threadBehaviour.Controllable;
|
|
||||||
import org.toop.framework.networking.connection.events.NetworkEvents;
|
import org.toop.framework.networking.connection.events.NetworkEvents;
|
||||||
|
|
||||||
public interface GameController extends Controllable, UpdatesGameUI {
|
public interface GameController {
|
||||||
/** Called when it is this player's turn to make a move. */
|
/** Called when it is this player's turn to make a move. */
|
||||||
void onYourTurn(NetworkEvents.YourTurnResponse event);
|
void onYourTurn(NetworkEvents.YourTurnResponse event);
|
||||||
|
|
||||||
@@ -13,5 +12,12 @@ public interface GameController extends Controllable, UpdatesGameUI {
|
|||||||
/** Called when the game has finished, with the final result. */
|
/** Called when the game has finished, with the final result. */
|
||||||
void gameFinished(NetworkEvents.GameResultResponse event);
|
void gameFinished(NetworkEvents.GameResultResponse event);
|
||||||
|
|
||||||
|
void start();
|
||||||
|
|
||||||
|
void stop();
|
||||||
|
|
||||||
|
/** Called to refresh or update the game UI. */
|
||||||
|
void updateUI();
|
||||||
|
|
||||||
void sendMove(long clientId, long move);
|
void sendMove(long clientId, long move);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
package org.toop.framework.gameFramework.controller;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Interface for classes that can trigger a UI update.
|
|
||||||
*/
|
|
||||||
public interface UpdatesGameUI {
|
|
||||||
|
|
||||||
/** Called to refresh or update the game UI. */
|
|
||||||
void updateUI();
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
package org.toop.framework.gameFramework.model.game;
|
|
||||||
|
|
||||||
public interface BoardProvider {
|
|
||||||
long[] getBoard();
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
package org.toop.framework.gameFramework.model.game;
|
|
||||||
|
|
||||||
import org.toop.framework.gameFramework.GameState;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Interface for turn-based games that can be played and queried for legal moves.
|
|
||||||
*/
|
|
||||||
public interface Playable {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns the moves that are currently valid in the game.
|
|
||||||
*
|
|
||||||
* @return an array of integers representing legal moves
|
|
||||||
*/
|
|
||||||
long getLegalMoves();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Plays the given move and returns the resulting game state.
|
|
||||||
*
|
|
||||||
* @param move the move to apply
|
|
||||||
* @return the {@link GameState} and additional info after the move
|
|
||||||
*/
|
|
||||||
PlayResult play(long move);
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
package org.toop.framework.gameFramework.model.game;
|
|
||||||
|
|
||||||
import org.toop.framework.gameFramework.model.player.Player;
|
|
||||||
|
|
||||||
public interface PlayerProvider {
|
|
||||||
Player getPlayer(int index);
|
|
||||||
}
|
|
||||||
@@ -2,9 +2,13 @@ package org.toop.framework.gameFramework.model.game;
|
|||||||
|
|
||||||
import org.toop.framework.gameFramework.model.player.Player;
|
import org.toop.framework.gameFramework.model.player.Player;
|
||||||
|
|
||||||
public interface TurnBasedGame extends Playable, PlayerProvider, BoardProvider, DeepCopyable<TurnBasedGame> {
|
public interface TurnBasedGame extends DeepCopyable<TurnBasedGame> {
|
||||||
void init(Player[] players);
|
void init(Player[] players);
|
||||||
|
long[] getBoard();
|
||||||
int getCurrentTurn();
|
int getCurrentTurn();
|
||||||
int getPlayerCount();
|
int getPlayerCount();
|
||||||
|
Player getPlayer(int index);
|
||||||
int getWinner();
|
int getWinner();
|
||||||
|
long getLegalMoves();
|
||||||
|
PlayResult play(long move);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package org.toop.framework.gameFramework.model.game.threadBehaviour;
|
|||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
import org.toop.framework.gameFramework.LongPairConsumer;
|
import org.toop.framework.gameFramework.LongPairConsumer;
|
||||||
import org.toop.framework.gameFramework.controller.GameController;
|
|
||||||
import org.toop.framework.gameFramework.model.game.TurnBasedGame;
|
import org.toop.framework.gameFramework.model.game.TurnBasedGame;
|
||||||
|
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
package org.toop.framework.gameFramework.model.game.threadBehaviour;
|
|
||||||
|
|
||||||
public interface Controllable {
|
|
||||||
void start();
|
|
||||||
|
|
||||||
void stop();
|
|
||||||
}
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package org.toop.framework.gameFramework.model.game;
|
package org.toop.framework.gameFramework.model.game.threadBehaviour;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Interface for games that support online multiplayer play.
|
* Interface for games that support online multiplayer play.
|
||||||
@@ -11,8 +11,11 @@ import java.util.function.Consumer;
|
|||||||
* <p>
|
* <p>
|
||||||
* Defines how a game's execution is started, stopped, and which player is active.
|
* Defines how a game's execution is started, stopped, and which player is active.
|
||||||
*/
|
*/
|
||||||
public interface ThreadBehaviour extends Controllable {
|
public interface ThreadBehaviour {
|
||||||
void setOnUpdateUI(Runnable onUpdateUI);
|
void setOnUpdateUI(Runnable onUpdateUI);
|
||||||
void setOnSendMove(LongPairConsumer onSendMove);
|
void setOnSendMove(LongPairConsumer onSendMove);
|
||||||
|
void start();
|
||||||
|
void stop();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,5 +3,6 @@ package org.toop.framework.gameFramework.model.player;
|
|||||||
import org.toop.framework.gameFramework.model.game.DeepCopyable;
|
import org.toop.framework.gameFramework.model.game.DeepCopyable;
|
||||||
import org.toop.framework.gameFramework.model.game.TurnBasedGame;
|
import org.toop.framework.gameFramework.model.game.TurnBasedGame;
|
||||||
|
|
||||||
public interface AI extends MoveProvider, DeepCopyable<AI> {
|
public interface AI extends DeepCopyable<AI> {
|
||||||
|
long getMove(TurnBasedGame game);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +0,0 @@
|
|||||||
package org.toop.framework.gameFramework.model.player;
|
|
||||||
|
|
||||||
import org.toop.framework.gameFramework.model.game.TurnBasedGame;
|
|
||||||
|
|
||||||
public interface MoveProvider {
|
|
||||||
long getMove(TurnBasedGame game);
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
package org.toop.framework.gameFramework.model.player;
|
|
||||||
|
|
||||||
public interface NameProvider {
|
|
||||||
String getName();
|
|
||||||
}
|
|
||||||
@@ -1,5 +1,9 @@
|
|||||||
package org.toop.framework.gameFramework.model.player;
|
package org.toop.framework.gameFramework.model.player;
|
||||||
|
|
||||||
import org.toop.framework.gameFramework.model.game.DeepCopyable;
|
import org.toop.framework.gameFramework.model.game.DeepCopyable;
|
||||||
|
import org.toop.framework.gameFramework.model.game.TurnBasedGame;
|
||||||
|
|
||||||
public interface Player extends NameProvider, MoveProvider, DeepCopyable<Player> {}
|
public interface Player extends DeepCopyable<Player> {
|
||||||
|
String getName();
|
||||||
|
long getMove(TurnBasedGame game);
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user