Added gameflow und kleinen bug

main
Victor Hans-Georg Waitz 2024-05-07 09:54:34 +02:00
parent b07e0a0e02
commit ed3c31d650
4 changed files with 74 additions and 14 deletions

View File

@ -144,7 +144,6 @@ public class KniffelSystem {
HashMap<String, Category> possibleCombinations = createCategoryHashMap(); HashMap<String, Category> possibleCombinations = createCategoryHashMap();
ArrayList<Category> validUpperCombinations = new ArrayList<>(); ArrayList<Category> validUpperCombinations = new ArrayList<>();
allValidCombinations = new ArrayList<>(); allValidCombinations = new ArrayList<>();
//TODO Add starwars logic
for (int dice : rolls){ for (int dice : rolls){
@ -415,8 +414,8 @@ public class KniffelSystem {
} }
private String createLeaderboardString(Player player){ public String createLeaderboardString(Player player){
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd.MM.yyy"); DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd.MM.yyyy");
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
String date = dtf.format(now); String date = dtf.format(now);
@ -441,6 +440,7 @@ public class KniffelSystem {
while (fsc.hasNextLine()){ while (fsc.hasNextLine()){
leaderboardRows.add(fsc.nextLine()); leaderboardRows.add(fsc.nextLine());
} }
fsc.close();
return leaderboardRows; return leaderboardRows;
} }
@ -452,7 +452,6 @@ public class KniffelSystem {
writer.write(""); writer.write("");
return; return;
} }
System.out.printf("Not empty |%s| \n", stringToEnter); //! TEST
ArrayList<String> currentRows = readFromFile(); ArrayList<String> currentRows = readFromFile();
@ -460,14 +459,13 @@ public class KniffelSystem {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
for(String leaderboardRow : currentRows) { for(String leaderboardRow : currentRows) {
System.out.println(leaderboardRow); sb.append(String.format("%s\n",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]));
} }
BufferedWriter writer = new BufferedWriter(new FileWriter(lederboardLocation)); BufferedWriter writer = new BufferedWriter(new FileWriter(lederboardLocation));
writer.write(sb.toString()); writer.write(sb.toString());
writer.close();
} }
@ -493,7 +491,6 @@ public class KniffelSystem {
} }
//! TEST
public String[] getAllPlayerStrings(){ public String[] getAllPlayerStrings(){
ArrayList<Player> players = game.getPlayers(); ArrayList<Player> players = game.getPlayers();
String[] returnStrings = new String[players.size()]; String[] returnStrings = new String[players.size()];

64
gameflow.txt 100644
View File

@ -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

View File

@ -1,3 +1,4 @@
Victor,1337,24.12.00 Victor,1337,24.12.00
Nastja,999,07.05.2024 Nastja,999,07.05.2024
Luke,404,04.05.2024 Luke,404,04.05.2024
Vikkes,258,07.05.2024

1 Victor 1337 24.12.00
2 Nastja 999 07.05.2024
3 Luke 404 04.05.2024
4 Vikkes 258 07.05.2024

View File

@ -1,9 +1,7 @@
package tui; package tui;
import domain.Player;
import fassade.KniffelSystem; import fassade.KniffelSystem;
import java.io.FileNotFoundException;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Scanner; import java.util.Scanner;
@ -84,7 +82,7 @@ public class TUI {
} }
private static void gameLoop(){ private static void gameLoop() {
String[] playerStrings = gameSystem.getAllPlayerStrings(); String[] playerStrings = gameSystem.getAllPlayerStrings();
System.out.println("Participating players:"); System.out.println("Participating players:");
@ -93,7 +91,6 @@ public class TUI {
} }
System.out.println(); System.out.println();
int turncounter = 0;
int rollscount; int rollscount;
while (true){ while (true){
@ -186,6 +183,7 @@ public class TUI {
for(String leaderboardRow : leaderboardRows) { for(String leaderboardRow : leaderboardRows) {
String[] row = leaderboardRow.split(","); 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 - %s - %s \n", row[1], row[0], row[2]));
} }