mirror of
https://github.com/2OOP/pism.git
synced 2026-02-04 10:54:51 +00:00
Rebased
This commit is contained in:
45
.idea/workspace.xml
generated
45
.idea/workspace.xml
generated
@@ -7,6 +7,8 @@
|
|||||||
<list default="true" id="997b32da-b4d4-48ac-ab51-52d65f364f81" name="Changes" comment="">
|
<list default="true" id="997b32da-b4d4-48ac-ab51-52d65f364f81" name="Changes" comment="">
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/main/java/org/toop/Main.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/org/toop/Main.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/main/java/org/toop/Main.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/org/toop/Main.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/main/java/org/toop/eventbus/Events.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/org/toop/eventbus/Events.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/src/main/java/org/toop/game/TTT.java" beforeDir="false" />
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
@@ -21,24 +23,37 @@
|
|||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
<component name="Git.Settings">
|
<component name="Git.Settings">
|
||||||
|
<option name="RECENT_BRANCH_BY_REPOSITORY">
|
||||||
|
<map>
|
||||||
|
<entry key="$PROJECT_DIR$" value="Ticho" />
|
||||||
|
</map>
|
||||||
|
</option>
|
||||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||||
</component>
|
</component>
|
||||||
<component name="GitHubPullRequestSearchHistory"><![CDATA[{
|
<component name="GitHubPullRequestSearchHistory"><![CDATA[{
|
||||||
"lastFilter": {
|
"lastFilter": {}
|
||||||
"state": "OPEN",
|
}]]></component>
|
||||||
"assignee": "BAFGdeJong"
|
<component name="GitHubPullRequestState"><![CDATA[{
|
||||||
|
"prStates": [
|
||||||
|
{
|
||||||
|
"id": {
|
||||||
|
"id": "PR_kwDOPslbWM6pHd-p",
|
||||||
|
"number": 25
|
||||||
|
},
|
||||||
|
"lastSeen": 1758130126808
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}]]></component>
|
||||||
|
<component name="GithubPullRequestsUISettings">{
|
||||||
|
"selectedUrlAndAccountId": {
|
||||||
|
"url": "git@github.com:2OOP/pism_ttt.git",
|
||||||
|
"accountId": "7694f583-f911-4763-8185-8ea3ed608804"
|
||||||
}
|
}
|
||||||
}]]></component>
|
}</component>
|
||||||
<component name="GithubPullRequestsUISettings"><![CDATA[{
|
<component name="ProjectColorInfo">{
|
||||||
"selectedUrlAndAccountId": {
|
"customColor": "",
|
||||||
"url": "git@github.com:2OOP/pism_ttt.git",
|
"associatedIndex": 1
|
||||||
"accountId": "7694f583-f911-4763-8185-8ea3ed608804"
|
}</component>
|
||||||
}
|
|
||||||
}]]></component>
|
|
||||||
<component name="ProjectColorInfo"><![CDATA[{
|
|
||||||
"customColor": "",
|
|
||||||
"associatedIndex": 1
|
|
||||||
}]]></component>
|
|
||||||
<component name="ProjectId" id="32pVUB4kZJjWp5yY5oJOqsrZhDL" />
|
<component name="ProjectId" id="32pVUB4kZJjWp5yY5oJOqsrZhDL" />
|
||||||
<component name="ProjectViewState">
|
<component name="ProjectViewState">
|
||||||
<option name="hideEmptyMiddlePackages" value="true" />
|
<option name="hideEmptyMiddlePackages" value="true" />
|
||||||
@@ -51,7 +66,7 @@
|
|||||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||||
"RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager": "true",
|
"RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager": "true",
|
||||||
"RunOnceActivity.git.unshallow": "true",
|
"RunOnceActivity.git.unshallow": "true",
|
||||||
"git-widget-placeholder": "ServerManager",
|
"git-widget-placeholder": "Ticho",
|
||||||
"node.js.detected.package.eslint": "true",
|
"node.js.detected.package.eslint": "true",
|
||||||
"node.js.detected.package.tslint": "true",
|
"node.js.detected.package.tslint": "true",
|
||||||
"node.js.selected.package.eslint": "(autodetect)",
|
"node.js.selected.package.eslint": "(autodetect)",
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
package org.toop;
|
package org.toop;
|
||||||
|
|
||||||
import org.toop.core.*;
|
import org.toop.UI.GameSelectorWindow;
|
||||||
import org.toop.eventbus.*;
|
import org.toop.eventbus.*;
|
||||||
import org.toop.graphics.*;
|
|
||||||
import org.toop.server.backend.ServerManager;
|
import org.toop.server.backend.ServerManager;
|
||||||
import org.toop.server.frontend.ConnectionManager;
|
import org.toop.server.frontend.ConnectionManager;
|
||||||
|
|
||||||
@@ -12,39 +11,40 @@ import org.apache.logging.log4j.LogManager;
|
|||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
|
|
||||||
public class Main {
|
public class Main {
|
||||||
|
|
||||||
|
private static final Logger logger = LogManager.getLogger(Main.class);
|
||||||
private static boolean running = false;
|
private static boolean running = false;
|
||||||
|
|
||||||
public static void main(String[] args) throws ExecutionException, InterruptedException {
|
public static void main(String[] args) throws ExecutionException, InterruptedException {
|
||||||
|
initSystems();
|
||||||
registerEvents();
|
registerEvents();
|
||||||
|
|
||||||
Window window = Window.setup(Window.API.GLFW, "Test", new Window.Size(1280, 720));
|
// Window window = Window.setup(Window.API.GLFW, "Test", new Window.Size(1280, 720));
|
||||||
Renderer renderer = Renderer.setup(Renderer.API.OPENGL);
|
// Renderer renderer = Renderer.setup(Renderer.API.OPENGL);
|
||||||
initSystems();
|
// initSystems();
|
||||||
Logging.disableLogs();
|
// Logging.disableLogs();
|
||||||
|
//
|
||||||
|
// Shader shader = Shader.create(
|
||||||
|
// "src/main/resources/shaders/gui_vertex.glsl",
|
||||||
|
// "src/main/resources/shaders/gui_fragment.glsl");
|
||||||
|
//
|
||||||
|
// running = window != null && renderer != null && shader != null;
|
||||||
|
// ConsoleGui console = new ConsoleGui();
|
||||||
|
//
|
||||||
|
// while (running) {
|
||||||
|
// window.update();
|
||||||
|
// renderer.clear();
|
||||||
|
//
|
||||||
|
// shader.start();
|
||||||
|
// renderer.render();
|
||||||
|
// }
|
||||||
|
// console.print();
|
||||||
|
//
|
||||||
|
// if (shader != null) shader.cleanup();
|
||||||
|
// if (renderer != null) renderer.cleanup();
|
||||||
|
// if (window != null) window.cleanup();
|
||||||
|
|
||||||
Shader shader = Shader.create(
|
// JFrameWindow window = new JFrameWindow();
|
||||||
"src/main/resources/shaders/gui_vertex.glsl",
|
|
||||||
"src/main/resources/shaders/gui_fragment.glsl");
|
|
||||||
|
|
||||||
running = window != null && renderer != null && shader != null;
|
|
||||||
ConsoleGui console = new ConsoleGui();
|
|
||||||
|
|
||||||
while (running) {
|
|
||||||
window.update();
|
|
||||||
renderer.clear();
|
|
||||||
|
|
||||||
shader.start();
|
|
||||||
renderer.render();
|
|
||||||
}
|
|
||||||
console.print();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (shader != null) shader.cleanup();
|
|
||||||
if (renderer != null) renderer.cleanup();
|
|
||||||
if (window != null) window.cleanup();
|
|
||||||
|
|
||||||
*/
|
|
||||||
//JFrameWindow window = new JFrameWindow();
|
|
||||||
GameSelectorWindow gameSelectorWindow = new GameSelectorWindow();
|
GameSelectorWindow gameSelectorWindow = new GameSelectorWindow();
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -74,3 +74,4 @@ public class Main {
|
|||||||
Main.running = running;
|
Main.running = running;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,11 +2,11 @@ package org.toop.eventbus;
|
|||||||
|
|
||||||
import org.toop.server.backend.tictactoe.TicTacToeServer;
|
import org.toop.server.backend.tictactoe.TicTacToeServer;
|
||||||
import org.toop.server.backend.tictactoe.TicTacToeServerCommand;
|
import org.toop.server.backend.tictactoe.TicTacToeServerCommand;
|
||||||
import org.toop.server.Server;
|
|
||||||
import org.toop.core.*;
|
import org.toop.core.*;
|
||||||
|
|
||||||
import java.lang.reflect.Constructor;
|
import java.lang.reflect.Constructor;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Events that are used in the GlobalEventBus class.
|
* Events that are used in the GlobalEventBus class.
|
||||||
@@ -184,7 +184,6 @@ public class Events implements IEvents {
|
|||||||
*
|
*
|
||||||
* @param ip The IP address of the server to connect to.
|
* @param ip The IP address of the server to connect to.
|
||||||
* @param port The port of the server to connect to.
|
* @param port The port of the server to connect to.
|
||||||
* @param future The CompletableFuture that will complete when the connection is established.
|
|
||||||
*/
|
*/
|
||||||
public record ConnectionEstablished(Object connectionId, String ip, String port) {}
|
public record ConnectionEstablished(Object connectionId, String ip, String port) {}
|
||||||
|
|
||||||
@@ -262,9 +261,6 @@ public class Events implements IEvents {
|
|||||||
* Triggers when a cell is clicked in one of the game boards.
|
* Triggers when a cell is clicked in one of the game boards.
|
||||||
*/
|
*/
|
||||||
public record CellClicked(int cell) {}
|
public record CellClicked(int cell) {}
|
||||||
}
|
|
||||||
|
|
||||||
public static class EventBusEvents {
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,76 +0,0 @@
|
|||||||
package org.toop.game;
|
|
||||||
|
|
||||||
public class TTT extends GameBase {
|
|
||||||
private int moveCount;
|
|
||||||
|
|
||||||
public TTT(String player1, String player2) {
|
|
||||||
super(9);
|
|
||||||
players = new Player[2];
|
|
||||||
players[0] = new Player(player1, 'X');
|
|
||||||
players[1] = new Player(player2, 'O');
|
|
||||||
|
|
||||||
moveCount = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean ValidateMove(int index) {
|
|
||||||
if (index < 0 || index > (size * size - 1)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return grid[index] == ' ';
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public State PlayMove(int index) {
|
|
||||||
if (!ValidateMove(index)) {
|
|
||||||
return State.INVALID;
|
|
||||||
}
|
|
||||||
|
|
||||||
grid[index] = players[currentPlayer].Move();
|
|
||||||
moveCount += 1;
|
|
||||||
|
|
||||||
if (CheckWin()) {
|
|
||||||
return State.WIN;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (moveCount >= grid.length) {
|
|
||||||
return State.DRAW;
|
|
||||||
}
|
|
||||||
|
|
||||||
currentPlayer = (currentPlayer + 1) % players.length;
|
|
||||||
return State.NORMAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean CheckWin() {
|
|
||||||
// Horizontal
|
|
||||||
for (int i = 0; i < 3; i++) {
|
|
||||||
int index = i * 3;
|
|
||||||
|
|
||||||
if (grid[index] == grid[index + 1] && grid[index] == grid[index + 2]) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Vertical
|
|
||||||
for (int i = 0; i < 3; i++) {
|
|
||||||
int index = i;
|
|
||||||
|
|
||||||
if (grid[index] == grid[index + 3] && grid[index] == grid[index + 6]) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// F-Slash
|
|
||||||
if (grid[2] == grid[4] && grid[2] == grid[6]) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// B-Slash
|
|
||||||
if (grid[0] == grid[4] && grid[0] == grid[8]) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user