diff --git a/src/SceneController.java b/src/SceneController.java index 3d67bf7a71f49b128a7a3a1f5efce68a76dd4c43..7c71ed089670294a82bb3c20222557c55ab97878 100644 --- a/src/SceneController.java +++ b/src/SceneController.java @@ -10,12 +10,12 @@ import java.util.List; public class SceneController { private Board board; - private Actor player; - private Actor enemy; + private Player player; + private Enemy enemy; public boolean playerTurn = true; - public void initData(Board board, Actor player, Actor enemy) { + public void initData(Board board, Player player, Enemy enemy) { this.board = board; this.player = player; this.enemy = enemy; diff --git a/src/TicTacToe.java b/src/TicTacToe.java index 01e18d94d2e5389e842766c267c2fc1ca069e98b..0e6bd068002ae61e4744119dfb13c9a22381a997 100644 --- a/src/TicTacToe.java +++ b/src/TicTacToe.java @@ -10,6 +10,7 @@ public class TicTacToe extends Application { private static Board board; private static final Actor player = new Player(); private static final Actor enemy = new Enemy(); + private static SceneController sceneController; public void startGame(){ board = new Board(); @@ -24,8 +25,8 @@ public class TicTacToe extends Application { Parent root = loader.load(); // Controller-Instanz holen und initialisieren - SceneController controller = loader.getController(); - controller.initData(board, player, enemy); // Übergabe der Logik-Klassen + sceneController = loader.getController(); + sceneController.initData(board, player, enemy); // Übergabe der Logik-Klassen Scene scene = new Scene(root, 800, 600); primaryStage.setTitle("Tic Tac Toe"); @@ -43,6 +44,15 @@ public class TicTacToe extends Application { while (!board.checkForWin()){ + if (sceneController.playerTurn) { + // TODO Spieler ist am Zug + continue; + + } else { + // TODO Gegner ist am Zug + + + } // TODO Spielablauf } diff --git a/src/logic/Actor.java b/src/logic/Actor.java index b8d643b52114b69ce690160affe99cc6c4518ad9..6c3ee62b79eaabc1a78b5052c8e3a195c05f9fba 100644 --- a/src/logic/Actor.java +++ b/src/logic/Actor.java @@ -1,12 +1,13 @@ package logic; +import java.util.Random; + public interface Actor { char symbol = '?'; public char getSymbol(); public void setSymbol(char symbol); - // Methode, um den nächsten Zug des Akteurs zu machen default boolean makeMove(Board board, int x, int y) { return board.placeToken(x, y, symbol); } diff --git a/src/logic/Enemy.java b/src/logic/Enemy.java index 76a8ec0dd354caf19459aa36de0fe7cc5f7a6c06..58dbefbc1fb60db185250c6d33a1e6b0632903ae 100644 --- a/src/logic/Enemy.java +++ b/src/logic/Enemy.java @@ -1,5 +1,7 @@ package logic; +import java.util.Random; + public class Enemy implements Actor { public char symbol; public Enemy() { @@ -16,5 +18,16 @@ public class Enemy implements Actor { this.symbol = symbol; } + // Methode, um den nächsten Zug des Akteurs zu machen + public boolean enemyMove(Board board) { + Random random = new Random(); + int x; + int y; + do { + x = random.nextInt(3); + y = random.nextInt(3); + } while (!board.placeToken(x, y, symbol)); + return true; + } } diff --git a/src/logic/Player.java b/src/logic/Player.java index 2f0696484dd961f809662f8099df8e56d3af9ba6..1c5bf77e745029a2c80f14ededd6d56d0a0f7659 100644 --- a/src/logic/Player.java +++ b/src/logic/Player.java @@ -16,6 +16,10 @@ public class Player implements Actor { this.symbol = symbol; } + // Methode, um den nächsten Zug des Akteurs zu machen + public boolean makeMove(Board board, int x, int y) { + return board.placeToken(x, y, symbol); + } }