mirror of
https://github.com/2OOP/pism.git
synced 2026-02-04 19:04:49 +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="">
|
||||
<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/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>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
@@ -21,24 +23,37 @@
|
||||
</option>
|
||||
</component>
|
||||
<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$" />
|
||||
</component>
|
||||
<component name="GitHubPullRequestSearchHistory"><![CDATA[{
|
||||
"lastFilter": {
|
||||
"state": "OPEN",
|
||||
"assignee": "BAFGdeJong"
|
||||
"lastFilter": {}
|
||||
}]]></component>
|
||||
<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 name="GithubPullRequestsUISettings"><![CDATA[{
|
||||
"selectedUrlAndAccountId": {
|
||||
"url": "git@github.com:2OOP/pism_ttt.git",
|
||||
"accountId": "7694f583-f911-4763-8185-8ea3ed608804"
|
||||
}
|
||||
}]]></component>
|
||||
<component name="ProjectColorInfo"><![CDATA[{
|
||||
"customColor": "",
|
||||
"associatedIndex": 1
|
||||
}]]></component>
|
||||
}</component>
|
||||
<component name="ProjectColorInfo">{
|
||||
"customColor": "",
|
||||
"associatedIndex": 1
|
||||
}</component>
|
||||
<component name="ProjectId" id="32pVUB4kZJjWp5yY5oJOqsrZhDL" />
|
||||
<component name="ProjectViewState">
|
||||
<option name="hideEmptyMiddlePackages" value="true" />
|
||||
@@ -51,7 +66,7 @@
|
||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||
"RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager": "true",
|
||||
"RunOnceActivity.git.unshallow": "true",
|
||||
"git-widget-placeholder": "ServerManager",
|
||||
"git-widget-placeholder": "Ticho",
|
||||
"node.js.detected.package.eslint": "true",
|
||||
"node.js.detected.package.tslint": "true",
|
||||
"node.js.selected.package.eslint": "(autodetect)",
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
package org.toop;
|
||||
|
||||
import org.toop.core.*;
|
||||
import org.toop.UI.GameSelectorWindow;
|
||||
import org.toop.eventbus.*;
|
||||
import org.toop.graphics.*;
|
||||
import org.toop.server.backend.ServerManager;
|
||||
import org.toop.server.frontend.ConnectionManager;
|
||||
|
||||
@@ -12,39 +11,40 @@ import org.apache.logging.log4j.LogManager;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
public class Main {
|
||||
|
||||
private static final Logger logger = LogManager.getLogger(Main.class);
|
||||
private static boolean running = false;
|
||||
|
||||
public static void main(String[] args) throws ExecutionException, InterruptedException {
|
||||
initSystems();
|
||||
registerEvents();
|
||||
|
||||
Window window = Window.setup(Window.API.GLFW, "Test", new Window.Size(1280, 720));
|
||||
Renderer renderer = Renderer.setup(Renderer.API.OPENGL);
|
||||
initSystems();
|
||||
Logging.disableLogs();
|
||||
// Window window = Window.setup(Window.API.GLFW, "Test", new Window.Size(1280, 720));
|
||||
// Renderer renderer = Renderer.setup(Renderer.API.OPENGL);
|
||||
// initSystems();
|
||||
// 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(
|
||||
"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();
|
||||
// JFrameWindow window = new JFrameWindow();
|
||||
GameSelectorWindow gameSelectorWindow = new GameSelectorWindow();
|
||||
|
||||
}
|
||||
@@ -74,3 +74,4 @@ public class Main {
|
||||
Main.running = running;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,11 +2,11 @@ package org.toop.eventbus;
|
||||
|
||||
import org.toop.server.backend.tictactoe.TicTacToeServer;
|
||||
import org.toop.server.backend.tictactoe.TicTacToeServerCommand;
|
||||
import org.toop.server.Server;
|
||||
import org.toop.core.*;
|
||||
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.util.Arrays;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
/**
|
||||
* 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 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) {}
|
||||
|
||||
@@ -262,9 +261,6 @@ public class Events implements IEvents {
|
||||
* Triggers when a cell is clicked in one of the game boards.
|
||||
*/
|
||||
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