From ed3c31d6509f06ae76dcaa590fa6db70683b9ff1 Mon Sep 17 00:00:00 2001 From: 3013050 <3013050@stud.hs-mannheim.de> Date: Tue, 7 May 2024 09:54:34 +0200 Subject: [PATCH] Added gameflow und kleinen bug --- fassade/KniffelSystem.java | 15 ++++----- gameflow.txt | 64 ++++++++++++++++++++++++++++++++++++++ scores.csv | 3 +- tui/TUI.java | 6 ++-- 4 files changed, 74 insertions(+), 14 deletions(-) create mode 100644 gameflow.txt diff --git a/fassade/KniffelSystem.java b/fassade/KniffelSystem.java index 03d1a63..d7e2da5 100644 --- a/fassade/KniffelSystem.java +++ b/fassade/KniffelSystem.java @@ -144,7 +144,6 @@ public class KniffelSystem { HashMap possibleCombinations = createCategoryHashMap(); ArrayList validUpperCombinations = new ArrayList<>(); allValidCombinations = new ArrayList<>(); - //TODO Add starwars logic for (int dice : rolls){ @@ -415,8 +414,8 @@ public class KniffelSystem { } - private String createLeaderboardString(Player player){ - DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd.MM.yyy"); + public String createLeaderboardString(Player player){ + DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd.MM.yyyy"); LocalDateTime now = LocalDateTime.now(); String date = dtf.format(now); @@ -441,6 +440,7 @@ public class KniffelSystem { while (fsc.hasNextLine()){ leaderboardRows.add(fsc.nextLine()); } + fsc.close(); return leaderboardRows; } @@ -452,7 +452,6 @@ public class KniffelSystem { writer.write(""); return; } - System.out.printf("Not empty |%s| \n", stringToEnter); //! TEST ArrayList currentRows = readFromFile(); @@ -460,14 +459,13 @@ public class KniffelSystem { StringBuilder sb = new StringBuilder(); for(String leaderboardRow : currentRows) { - System.out.println(leaderboardRow); - String[] row = leaderboardRow.split(","); - System.out.printf("len row: %d \n", row.length); - sb.append(String.format("%s - %s - %s \n", row[1], row[0], row[2])); + sb.append(String.format("%s\n",leaderboardRow)); } BufferedWriter writer = new BufferedWriter(new FileWriter(lederboardLocation)); writer.write(sb.toString()); + + writer.close(); } @@ -493,7 +491,6 @@ public class KniffelSystem { } - //! TEST public String[] getAllPlayerStrings(){ ArrayList players = game.getPlayers(); String[] returnStrings = new String[players.size()]; diff --git a/gameflow.txt b/gameflow.txt new file mode 100644 index 0000000..5d22ada --- /dev/null +++ b/gameflow.txt @@ -0,0 +1,64 @@ +1. System zeigt das Hauptmenü + +2. SpielerIn wählt im Hauptmenü den Punkt "1 - Play" mit dem input 1 + +3. System vergleicht den Input und ruft die Methode mainMenuPlay() auf + +4. System fragt nach möglichen Spielmodi + +5. SpielerIn wählt den Modus "default" mit dem Input 1 aus + +6. System setzt in der Klasse Game.java den Spielmodus und bestimmt die entsprechende Augenzahl der Würfel + +7. System gibt ausgewählten Modus zurück + +8. System fragt nach Menge der MitspielerInnen (1-6) + +9. SpielerIn gibt Menge der SpielerInnen ein + +10. System fragt SpielerIn nach Name + +11. SpielerIn gibt Name ein + +12. System trägt eingetragenen SpielerIn als TeilnehmerIn ein + +13. System grüßt eingetragenen Spieler*In + +14. Wenn noch nicht alle SpielerInnen Namen eingegeben haben: goto 10. + +15. System startet gameLoop + +16. System gibt alle teilnehmende SpielerInnen aus + +17. Wenn Block voll -> goto 30 + +18. System gibt an wer dran ist + +19. System wirft Würfel + +20. System gibt geworfenen Würfel aus + +21. System gibt die möglichen Kombinationen mit geworfenem Wurf an + +22. System fragt welche Würfel man behalten und welche neu werfen möchte + +23. SpielerIn gibt an, welche Würfel behalten werden + +24. Wenn weniger als 3-mal geworfen wurde -> goto 19 + +25. System gibt leere Zeilen aus + +26. System fordert SpielerIn auf eine Zeile für den Wurf auszuwählen + +27. SpielerIn gibt Zeile ein, in die Wurf geschrieben wird + +28. System schreibt Wert des Wurfs in Zeile + +29. System geht über in den nächsten Zug + +30. System ruft afterGame auf + +31. System kalkuliert für jeden SpielerIn die Punktzahl und gibt sie aus + +32. System schreibt Punkte der SpielerInnen in das Leaderboard + diff --git a/scores.csv b/scores.csv index 0dd2405..7a795e9 100644 --- a/scores.csv +++ b/scores.csv @@ -1,3 +1,4 @@ Victor,1337,24.12.00 Nastja,999,07.05.2024 -Luke,404,04.05.2024 \ No newline at end of file +Luke,404,04.05.2024 +Vikkes,258,07.05.2024 diff --git a/tui/TUI.java b/tui/TUI.java index b097ba7..5ce2688 100644 --- a/tui/TUI.java +++ b/tui/TUI.java @@ -1,9 +1,7 @@ package tui; -import domain.Player; import fassade.KniffelSystem; -import java.io.FileNotFoundException; import java.io.IOException; import java.util.ArrayList; import java.util.Scanner; @@ -84,7 +82,7 @@ public class TUI { } - private static void gameLoop(){ + private static void gameLoop() { String[] playerStrings = gameSystem.getAllPlayerStrings(); System.out.println("Participating players:"); @@ -93,7 +91,6 @@ public class TUI { } System.out.println(); - int turncounter = 0; int rollscount; while (true){ @@ -186,6 +183,7 @@ public class TUI { for(String leaderboardRow : leaderboardRows) { String[] row = leaderboardRow.split(","); + System.out.printf("Len row: %d \n", row.length); sb.append(String.format("%s - %s - %s \n", row[1], row[0], row[2])); }