Formatting

This commit is contained in:
lieght
2025-09-21 05:47:38 +02:00
parent 4221b91cfd
commit 6e35993dc2
5 changed files with 49 additions and 40 deletions

View File

@@ -52,7 +52,11 @@ public class LocalGameSelector extends JFrame {
deleteSave = new JButton("Delete Save"); deleteSave = new JButton("Delete Save");
panel1.add(deleteSave); panel1.add(deleteSave);
deleteSave.setEnabled(false); deleteSave.setEnabled(false);
deleteSave.addActionListener(e -> {tttBoard = null; deleteSave.setEnabled(false);}); deleteSave.addActionListener(
e -> {
tttBoard = null;
deleteSave.setEnabled(false);
});
cards.add(panel1, "MainMenu"); cards.add(panel1, "MainMenu");
@@ -94,7 +98,7 @@ public class LocalGameSelector extends JFrame {
cardLayout.show(cards, "MainMenu"); cardLayout.show(cards, "MainMenu");
gameSelectionComboBox.setSelectedIndex(0); gameSelectionComboBox.setSelectedIndex(0);
playerTypeSelectionBox.setSelectedIndex(0); playerTypeSelectionBox.setSelectedIndex(0);
if (tttBoard != null) { if (tttBoard != null) {
deleteSave.setEnabled(true); deleteSave.setEnabled(true);
} }
} }

View File

@@ -125,7 +125,9 @@ public class RemoteGameSelector {
// } // TODO: Better error handling to not crash the system. // } // TODO: Better error handling to not crash the system.
frame.remove(mainMenu); frame.remove(mainMenu);
localTicTacToe = LocalTicTacToe.createRemote(ipTextField.getText(), portTextField.getText()); localTicTacToe =
LocalTicTacToe.createRemote(
ipTextField.getText(), portTextField.getText());
UIGameBoard ttt = new UIGameBoard(localTicTacToe, this); // TODO: Fix later UIGameBoard ttt = new UIGameBoard(localTicTacToe, this); // TODO: Fix later
frame.add(ttt.getTTTPanel()); // TODO: Fix later frame.add(ttt.getTTTPanel()); // TODO: Fix later
frame.revalidate(); frame.revalidate();

View File

@@ -3,7 +3,6 @@ package org.toop.frontend.UI;
import java.awt.*; import java.awt.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import javax.swing.*; import javax.swing.*;
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.frontend.games.LocalTicTacToe; import org.toop.frontend.games.LocalTicTacToe;
@@ -28,7 +27,7 @@ public class UIGameBoard {
public UIGameBoard(LocalTicTacToe lttt, Object parent) { public UIGameBoard(LocalTicTacToe lttt, Object parent) {
if (!(parent == null)) { if (!(parent == null)) {
if (parent instanceof LocalGameSelector) { if (parent instanceof LocalGameSelector) {
parentLocal = true; parentLocal = true;
} else if (parent instanceof RemoteGameSelector) { } else if (parent instanceof RemoteGameSelector) {
parentLocal = false; parentLocal = false;
@@ -45,15 +44,14 @@ public class UIGameBoard {
backToMainMenuButton = new JButton("Back to Main Menu"); backToMainMenuButton = new JButton("Back to Main Menu");
tttPanel.add(backToMainMenuButton, BorderLayout.SOUTH); tttPanel.add(backToMainMenuButton, BorderLayout.SOUTH);
backToMainMenuButton.addActionListener( backToMainMenuButton.addActionListener(
_ ->{ _ -> {
// TODO reset game and connections // TODO reset game and connections
// Game now gets reset in local // Game now gets reset in local
if(parentLocal) { if (parentLocal) {
((LocalGameSelector)parent).showMainMenu(); ((LocalGameSelector) parent).showMainMenu();
} } else {
else{ ((RemoteGameSelector) parent).showMainMenu();
((RemoteGameSelector)parent).showMainMenu(); }
}
}); });
// Game grid // Game grid
@@ -80,7 +78,7 @@ public class UIGameBoard {
final int index = i; final int index = i;
cells[i].addActionListener( cells[i].addActionListener(
(ActionEvent _) -> { (ActionEvent _) -> {
if(!gameOver) { if (!gameOver) {
if (cells[index].getText().equals(" ")) { if (cells[index].getText().equals(" ")) {
int cp = this.localTicTacToe.getCurrentPlayersTurn(); int cp = this.localTicTacToe.getCurrentPlayersTurn();
if (cp == 0) { if (cp == 0) {
@@ -92,12 +90,18 @@ public class UIGameBoard {
} }
this.localTicTacToe.move(index); this.localTicTacToe.move(index);
cells[index].setText(currentPlayer); cells[index].setText(currentPlayer);
} else {
logger.info(
"Player "
+ currentPlayerIndex
+ " attempted invalid move at: "
+ cells[index].getText());
} }
else{ } else {
logger.info("Player " + currentPlayerIndex + " attempted invalid move at: " + cells[index].getText()); logger.info(
} "Player "
}else { + currentPlayerIndex
logger.info("Player " + currentPlayerIndex + " attempted to move after the game has ended."); + " attempted to move after the game has ended.");
} }
}); });
} }
@@ -109,19 +113,17 @@ public class UIGameBoard {
System.out.println(cells[index].getText()); System.out.println(cells[index].getText());
cells[index].setText(move); cells[index].setText(move);
} }
public void setState(GameBase.State state, String playerMove) { public void setState(GameBase.State state, String playerMove) {
Color color; Color color;
if (state == GameBase.State.WIN && playerMove.equals(currentPlayer)) { if (state == GameBase.State.WIN && playerMove.equals(currentPlayer)) {
color = new Color(160,220,160); color = new Color(160, 220, 160);
} } else if (state == GameBase.State.WIN) {
else if (state == GameBase.State.WIN) { color = new Color(220, 160, 160);
color = new Color(220,160,160); } else if (state == GameBase.State.DRAW) {
} color = new Color(220, 220, 160);
else if (state == GameBase.State.DRAW){ } else {
color = new Color(220,220,160); color = new Color(220, 220, 220);
}
else {
color = new Color(220,220,220);
} }
for (JButton cell : cells) { for (JButton cell : cells) {
cell.setBackground(color); cell.setBackground(color);

View File

@@ -7,8 +7,8 @@ import org.toop.eventbus.Events;
import org.toop.eventbus.GlobalEventBus; import org.toop.eventbus.GlobalEventBus;
import org.toop.frontend.UI.UIGameBoard; import org.toop.frontend.UI.UIGameBoard;
import org.toop.game.tictactoe.GameBase; import org.toop.game.tictactoe.GameBase;
import org.toop.game.tictactoe.ai.MinMaxTicTacToe;
import org.toop.game.tictactoe.TicTacToe; import org.toop.game.tictactoe.TicTacToe;
import org.toop.game.tictactoe.ai.MinMaxTicTacToe;
/** /**
* A representation of a local tic-tac-toe game. Calls are made to a server for information about * A representation of a local tic-tac-toe game. Calls are made to a server for information about
@@ -152,7 +152,7 @@ public class LocalTicTacToe { // TODO: Implement runnable
ui.setCell(bestMove, "X"); ui.setCell(bestMove, "X");
} }
} }
if (state == GameBase.State.WIN || state == GameBase.State.DRAW) { if (state == GameBase.State.WIN || state == GameBase.State.DRAW) {
ui.setState(state, "X"); ui.setState(state, "X");
running = false; running = false;
} }
@@ -166,7 +166,7 @@ public class LocalTicTacToe { // TODO: Implement runnable
ui.setCell(bestMove, "O"); ui.setCell(bestMove, "O");
} }
} }
if (state == GameBase.State.WIN || state == GameBase.State.DRAW) { if (state == GameBase.State.WIN || state == GameBase.State.DRAW) {
ui.setState(state, "O"); ui.setState(state, "O");
running = false; running = false;
} }
@@ -208,11 +208,15 @@ public class LocalTicTacToe { // TODO: Implement runnable
if (this.playersTurn == 0 && !isAiPlayer[0]) { if (this.playersTurn == 0 && !isAiPlayer[0]) {
this.moveQueuePlayerA.put(moveIndex); this.moveQueuePlayerA.put(moveIndex);
logger.info( logger.info(
"Adding player's {}, move: {}", this.playersTurn, moveIndex); "Adding player's {}, move: {} to queue A",
this.playersTurn,
moveIndex);
} else if (this.playersTurn == 1 && !isAiPlayer[1]) { } else if (this.playersTurn == 1 && !isAiPlayer[1]) {
this.moveQueuePlayerB.put(moveIndex); this.moveQueuePlayerB.put(moveIndex);
logger.info( logger.info(
"Adding player's {}, move: {}", this.playersTurn, moveIndex); "Adding player's {}, move: {} to queue B",
this.playersTurn,
moveIndex);
} }
} catch (InterruptedException e) { } catch (InterruptedException e) {
logger.error( logger.error(
@@ -235,10 +239,7 @@ public class LocalTicTacToe { // TODO: Implement runnable
try { try {
logger.info( logger.info(
"Received message from " "Received message from {}: {}", this.connectionId, receivedMessage.message());
+ this.connectionId
+ ": "
+ receivedMessage.message());
this.receivedQueue.put(receivedMessage.message()); this.receivedQueue.put(receivedMessage.message());
} catch (InterruptedException e) { } catch (InterruptedException e) {
logger.error("Error waiting for received Message", e); logger.error("Error waiting for received Message", e);

View File

@@ -27,7 +27,7 @@ public class MinMaxTicTacToe {
} }
} }
if (empty) { //start in a random corner if (empty) { // start in a random corner
return switch ((int) (Math.random() * 4)) { return switch ((int) (Math.random() * 4)) {
case 0 -> 0; case 0 -> 0;
case 1 -> 2; case 1 -> 2;