From 76623aa66f621285a3d034adc7eaa7c36bd669ac Mon Sep 17 00:00:00 2001 From: 3013050 <3013050@stud.hs-mannheim.de> Date: Tue, 30 Apr 2024 12:46:42 +0200 Subject: [PATCH] Added some small things Added a sheet class to collect points from a player --- domain/Dice.java | 12 ++++++++++++ domain/Game.java | 14 +++++++++++++- domain/Player.java | 2 +- domain/Sheet.java | 7 +++++++ fassade/GameCycle.java | 5 +++++ fassade/KniffelSystem.java | 31 +++++++++++++++++++++++++++++-- tui/TUI.java | 36 ++++++++++++++++++++++++++++-------- 7 files changed, 95 insertions(+), 12 deletions(-) create mode 100644 domain/Sheet.java create mode 100644 fassade/GameCycle.java diff --git a/domain/Dice.java b/domain/Dice.java index f18854c..215d329 100644 --- a/domain/Dice.java +++ b/domain/Dice.java @@ -1,4 +1,16 @@ package domain; +import java.util.Random; + public class Dice { + private int amountSides; + + public Dice(int amountSides){ + this.amountSides = amountSides; + } + + public int roll(){ + Random rand = new Random(); + return (rand.nextInt(amountSides) + 1); + } } diff --git a/domain/Game.java b/domain/Game.java index f1d22f0..e6f950a 100644 --- a/domain/Game.java +++ b/domain/Game.java @@ -3,13 +3,25 @@ package domain; import java.util.ArrayList; public class Game { - ArrayList currentPlayers; + private ArrayList currentPlayers; + private int turnPlayer; + private Dice dice; public Game(){ currentPlayers = new ArrayList(); + turnPlayer = 0; + dice = new Dice(6); + } + + public int rollDice(){ + return dice.roll(); } public void addPlayer(Player playerToAdd){ currentPlayers.add(playerToAdd); } + + public ArrayList getPlayers(){ + return currentPlayers; + } } diff --git a/domain/Player.java b/domain/Player.java index 4c83ee8..ba2ac73 100644 --- a/domain/Player.java +++ b/domain/Player.java @@ -17,6 +17,6 @@ public class Player { public String toString() { String ANSI_RESET = "\u001B[0m"; String coloredName = String.format(this.color + this.name + ANSI_RESET); - return String.format("Name: %s, Colored name: %s \n", this.name, coloredName); + return String.format("Player %d: %s", this.playerNumber, coloredName); } } diff --git a/domain/Sheet.java b/domain/Sheet.java new file mode 100644 index 0000000..d79ac99 --- /dev/null +++ b/domain/Sheet.java @@ -0,0 +1,7 @@ +package domain; + +public class Sheet { + String[] usedRows; + String[] canceledRows; + String[] emptyRows; +} diff --git a/fassade/GameCycle.java b/fassade/GameCycle.java new file mode 100644 index 0000000..ba4f5fd --- /dev/null +++ b/fassade/GameCycle.java @@ -0,0 +1,5 @@ +package fassade; + +public class GameCycle { + +} diff --git a/fassade/KniffelSystem.java b/fassade/KniffelSystem.java index 8d0bacb..625c799 100644 --- a/fassade/KniffelSystem.java +++ b/fassade/KniffelSystem.java @@ -21,8 +21,8 @@ public class KniffelSystem { } - public String scorebaordData(){ - return "Scoreboard - TODO"; + public String LeaderBaordData(){ + return "Leaderboard - TODO \n"; } @@ -51,4 +51,31 @@ public class KniffelSystem { int randomIndex = rand.nextInt(playerColors.size()); // return playerColors.remove(randomIndex); // Quelle 1 Ende } + + + public void createTestPlayers(int amountPlayer){ + String[] names = {"Vic", "Natja", "Lilli", "Emelie", "Esra", "Oli"}; + for (int i = 0; i < amountPlayer; i++){ + addPlayer(i+1, names[i]); + } + } + + + public void rollDice(int amountRolls){ + for (int i = 0; i < amountRolls; i++){ + System.out.println(game.rollDice()); + } + } + + // TEST + public String[] getAllPlayerStrings(){ + ArrayList players = game.getPlayers(); + String[] returnStrings = new String[players.size()]; + + for (int i = 0; i < players.size(); i++){ + returnStrings[i] = players.get(i).toString(); + } + + return returnStrings; + } } diff --git a/tui/TUI.java b/tui/TUI.java index 6f283a8..fb2d29b 100644 --- a/tui/TUI.java +++ b/tui/TUI.java @@ -10,15 +10,21 @@ public class TUI { public static void main(String[] args) { System.out.println("Welcome to the PR2 Kniffel game!"); - while (true){ - mainMenuOutput(); - } + + // while (true){ + // mainMenuOutput(); + // } + + + // DEV: + gameSystem = new KniffelSystem(); + gameLoop(); } private static int mainMenuOutput(){ System.out.println("What do you want to do?"); System.out.println("1 - Play"); - System.out.println("2 - See scoreboard"); + System.out.println("2 - See leaderboard"); System.out.println("3 - Exit"); System.out.print("> "); String mainMenuUserInput = sc.nextLine().toLowerCase(); @@ -31,10 +37,11 @@ public class TUI { return 1; } else if ((mainMenuUserInput.equals("2")) - || (mainMenuUserInput.equals("see scoreboard")) + || (mainMenuUserInput.equals("see leaderboard")) || (mainMenuUserInput.equals("see")) - || (mainMenuUserInput.equals("scoreboard"))){ - System.out.println("scoreboard"); // TEST + || (mainMenuUserInput.equals("leaderboard"))){ + System.out.println("leaderboard"); // TEST + mainMenuLeaderBoard(); return 2; } else { @@ -52,6 +59,7 @@ public class TUI { String mainMenuPlayAmountPlayersInput = sc.nextLine().toLowerCase(); int amountPlayers = Integer.parseInt(mainMenuPlayAmountPlayersInput); + for (int i = 0; i < amountPlayers; i++){ System.out.printf("Player %d: ", i + 1); System.out.println("Enter your name: "); @@ -63,8 +71,20 @@ public class TUI { } } - private static void mainMenuScoreboard(){ + private static void gameLoop(){ + gameSystem.createTestPlayers(6); + String[] playerStrings = gameSystem.getAllPlayerStrings(); + for (String player : playerStrings){ + System.out.println(player); + } + + gameSystem.rollDice(40); + } + + private static void mainMenuLeaderBoard(){ + gameSystem = new KniffelSystem(); // Scorboard System + System.out.println(gameSystem.LeaderBaordData()); // TODO } private static void mainMenuExit(){