Compare commits
2 Commits
9790370942
...
9d5f8858e0
Author | SHA1 | Date |
---|---|---|
|
9d5f8858e0 | |
|
e2604101bf |
|
@ -8,11 +8,30 @@ public class Game {
|
||||||
private ArrayList<Player> currentPlayers;
|
private ArrayList<Player> currentPlayers;
|
||||||
private int turnPlayer;
|
private int turnPlayer;
|
||||||
private Dice dice;
|
private Dice dice;
|
||||||
|
private String gamemode;
|
||||||
|
|
||||||
public Game(){
|
public Game(){
|
||||||
currentPlayers = new ArrayList<Player>();
|
currentPlayers = new ArrayList<Player>();
|
||||||
turnPlayer = 0;
|
turnPlayer = 0;
|
||||||
dice = new Dice(6);
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public String setGamemode(String gamemode){
|
||||||
|
if (gamemode.equals("1")){
|
||||||
|
this.gamemode = "default";
|
||||||
|
dice = new Dice(6);
|
||||||
|
return "Default mode selected.";
|
||||||
|
} else {
|
||||||
|
this.gamemode = "starwars";
|
||||||
|
dice = new Dice(8);
|
||||||
|
return "Starwars mode selected.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public String getGamemode(){
|
||||||
|
return this.gamemode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -20,10 +39,12 @@ public class Game {
|
||||||
Collections.rotate(currentPlayers, -1);
|
Collections.rotate(currentPlayers, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public Player getCurrentPlayer(){
|
public Player getCurrentPlayer(){
|
||||||
return currentPlayers.getFirst();
|
return currentPlayers.getFirst();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public int rollDice(){
|
public int rollDice(){
|
||||||
return dice.roll();
|
return dice.roll();
|
||||||
}
|
}
|
||||||
|
@ -33,6 +54,7 @@ public class Game {
|
||||||
currentPlayers.add(playerToAdd);
|
currentPlayers.add(playerToAdd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public ArrayList<Player> getPlayers(){
|
public ArrayList<Player> getPlayers(){
|
||||||
return currentPlayers;
|
return currentPlayers;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,12 +7,19 @@ public class Player {
|
||||||
int score;
|
int score;
|
||||||
Sheet sheet;
|
Sheet sheet;
|
||||||
|
|
||||||
public Player(int playerNumber, String name, String color, int score) {
|
public Player(int playerNumber, String name, String color, int score, String gamemode) {
|
||||||
this.playerNumber = playerNumber;
|
this.playerNumber = playerNumber;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.color = color;
|
this.color = color;
|
||||||
this.score = score;
|
this.score = score;
|
||||||
this.sheet = new Sheet();
|
this.sheet = new Sheet();
|
||||||
|
|
||||||
|
if (gamemode.equals("default")){
|
||||||
|
this.sheet = new Sheet();
|
||||||
|
}
|
||||||
|
else if (gamemode.equals("starwars")){
|
||||||
|
this.sheet = new StarwarsSheet();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -24,11 +31,25 @@ public class Player {
|
||||||
return this.sheet;
|
return this.sheet;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void setScore(int score){
|
||||||
|
this.score = score;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getScore(){
|
||||||
|
return this.score;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public String getName(){
|
||||||
|
return this.name;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
String ANSI_RESET = "\u001B[0m";
|
String ANSI_RESET = "\u001B[0m";
|
||||||
String coloredName = String.format(this.color + this.name + ANSI_RESET);
|
String coloredName = String.format(this.color + this.name + ANSI_RESET);
|
||||||
// return String.format("Player %d: %s", this.playerNumber, coloredName);
|
|
||||||
return String.format("%s", coloredName);
|
return String.format("%s", coloredName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@ public class Sheet {
|
||||||
ArrayList<String> usedRows = new ArrayList<>();
|
ArrayList<String> usedRows = new ArrayList<>();
|
||||||
ArrayList<String> crossedRows = new ArrayList<>();
|
ArrayList<String> crossedRows = new ArrayList<>();
|
||||||
|
|
||||||
// Sheet rows, first half
|
//? Sheet rows, upper half
|
||||||
Aces aces;
|
Aces aces;
|
||||||
Twos twos;
|
Twos twos;
|
||||||
Threes threes;
|
Threes threes;
|
||||||
|
@ -19,7 +19,7 @@ public class Sheet {
|
||||||
Fives fives;
|
Fives fives;
|
||||||
Sixes sixes;
|
Sixes sixes;
|
||||||
|
|
||||||
// Sheet rows, second half
|
//? Sheet rows, lower half
|
||||||
ThreeOfKind threeOfKind;
|
ThreeOfKind threeOfKind;
|
||||||
FourOfKind fourOfKind;
|
FourOfKind fourOfKind;
|
||||||
FullHouse fullHouse;
|
FullHouse fullHouse;
|
||||||
|
@ -143,6 +143,48 @@ public class Sheet {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public int calcSheet(){
|
||||||
|
int upperSum = calcUpperHalf();
|
||||||
|
int upperScore = calcUpperBonus(upperSum);
|
||||||
|
|
||||||
|
int lowerScore = calcLowerHalf();
|
||||||
|
|
||||||
|
return upperScore + lowerScore;
|
||||||
|
}
|
||||||
|
|
||||||
|
private int calcUpperHalf(){
|
||||||
|
int upperSum = 0;
|
||||||
|
upperSum += aces.getValue();
|
||||||
|
upperSum += twos.getValue();
|
||||||
|
upperSum += threes.getValue();
|
||||||
|
upperSum += fours.getValue();
|
||||||
|
upperSum += fives.getValue();
|
||||||
|
upperSum += sixes.getValue();
|
||||||
|
|
||||||
|
return upperSum;
|
||||||
|
}
|
||||||
|
|
||||||
|
private int calcLowerHalf(){
|
||||||
|
int lowerSum = 0;
|
||||||
|
lowerSum += threeOfKind.getValue();
|
||||||
|
lowerSum += fourOfKind.getValue();
|
||||||
|
lowerSum += fullHouse.getValue();
|
||||||
|
lowerSum += smallStraight.getValue();
|
||||||
|
lowerSum += largeStraight.getValue();
|
||||||
|
lowerSum += yahtzee.getValue();
|
||||||
|
lowerSum += chance.getValue();
|
||||||
|
|
||||||
|
return lowerSum;
|
||||||
|
}
|
||||||
|
|
||||||
|
private int calcUpperBonus(int upperSum){
|
||||||
|
if (upperSum >= 63){
|
||||||
|
upperSum += 35;
|
||||||
|
}
|
||||||
|
return upperSum;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public boolean checkGameEnd(){
|
public boolean checkGameEnd(){
|
||||||
return (usedRows.size() + crossedRows.size()) == amountTurns;
|
return (usedRows.size() + crossedRows.size()) == amountTurns;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
package domain;
|
||||||
|
|
||||||
|
import domain.sheets.*;
|
||||||
|
|
||||||
|
public class StarwarsSheet extends Sheet{
|
||||||
|
//? Additional upper half
|
||||||
|
Sevens sevens;
|
||||||
|
Eights eights;
|
||||||
|
|
||||||
|
//? Additional lower half
|
||||||
|
StarWarsDay starWarsDay;
|
||||||
|
R2D2 r2D2;
|
||||||
|
|
||||||
|
public StarwarsSheet(){
|
||||||
|
super();
|
||||||
|
this.sevens = new Sevens();
|
||||||
|
super.unusedRows.add(this.sevens.toString());
|
||||||
|
|
||||||
|
this.eights = new Eights();
|
||||||
|
super.unusedRows.add(this.eights.toString());
|
||||||
|
|
||||||
|
this.starWarsDay = new StarWarsDay();
|
||||||
|
super.unusedRows.add(this.starWarsDay.toString());
|
||||||
|
|
||||||
|
this.r2D2 = new R2D2();
|
||||||
|
super.unusedRows.add(this.r2D2.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void writeStarwarsCategory(Category categoryToWrite, boolean crossing){
|
||||||
|
switch (categoryToWrite.toString()){
|
||||||
|
case "Sevens":
|
||||||
|
sevens = (Sevens) categoryToWrite;
|
||||||
|
break;
|
||||||
|
case "Eights":
|
||||||
|
eights = (Eights) categoryToWrite;
|
||||||
|
break;
|
||||||
|
case "StarWarsDay":
|
||||||
|
starWarsDay = (StarWarsDay) categoryToWrite;
|
||||||
|
break;
|
||||||
|
case "R2D2":
|
||||||
|
r2D2 = (R2D2) categoryToWrite;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
super.writeCategory(categoryToWrite, crossing);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
package domain.sheets;
|
||||||
|
|
||||||
|
public class Eights extends Category{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int calcValueFromAmount() {
|
||||||
|
this.value = this.amount * 8;
|
||||||
|
return this.value;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,5 @@
|
||||||
|
package domain.sheets;
|
||||||
|
|
||||||
|
public class R2D2 extends Category{
|
||||||
|
//TODO
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
package domain.sheets;
|
||||||
|
|
||||||
|
public class Sevens extends Category{
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int calcValueFromAmount() {
|
||||||
|
this.value = this.amount * 7;
|
||||||
|
return this.value;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
package domain.sheets;
|
||||||
|
|
||||||
|
public class StarWarsDay extends Category{
|
||||||
|
|
||||||
|
//TODO
|
||||||
|
}
|
|
@ -1,28 +1,5 @@
|
||||||
package fassade;
|
package fassade;
|
||||||
|
|
||||||
public class GameCycle {
|
public class GameCycle {
|
||||||
// public class DiceRoll {
|
|
||||||
// public static boolean hasSmallStraight(int[] dice) {
|
}
|
||||||
// Arrays.sort(dice);
|
|
||||||
// for (int i = 0; i < dice.length - 3; i++) {
|
|
||||||
// if (dice[i] + 1 == dice[i + 1] && dice[i] + 2 == dice[i + 2] && dice[i] + 3 == dice[i + 3]) {
|
|
||||||
// return true;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// return false;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public static boolean hasLargeStraight(int[] dice) {
|
|
||||||
// Arrays.sort(dice);
|
|
||||||
// for (int i = 0; i < dice.length - 4; i++) {
|
|
||||||
// if (dice[i] + 1 == dice[i + 1] && dice[i] + 2 == dice[i + 2] && dice[i] + 3 == dice[i + 3] && dice[i] + 4 == dice[i + 4]) {
|
|
||||||
// return true;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// return false;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public static void main(String[] args) {
|
|
||||||
// int[] dice = {3, 1, 4, 2, 5};}
|
|
||||||
// } // example array System.out.println("Has small straight: " + hasSmallStraight(dice)); System.out.println("Has large straight: " + hasLargeStraight(dice)); }}```Here's how the code works:1. First, we sort the array of dice rolls in ascending order using `Arrays.sort()`.2. In the `hasSmallStraight()` method, we iterate through the sorted array and check if four consecutive numbers appear. We do this by checking if the current element plus 1, 2, and 3 are equal to the next three elements in the array. If we find a match, we return `true`.3. In the `hasLargeStraight()` method, we do a similar check,
|
|
||||||
}
|
|
|
@ -5,9 +5,13 @@ import domain.Player;
|
||||||
import domain.Sheet;
|
import domain.Sheet;
|
||||||
import domain.sheets.Category;
|
import domain.sheets.Category;
|
||||||
|
|
||||||
|
import java.io.*;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
public class KniffelSystem {
|
public class KniffelSystem {
|
||||||
|
String lederboardLocation = "scores.csv";
|
||||||
ArrayList<String> playerColors;
|
ArrayList<String> playerColors;
|
||||||
ArrayList<Category> allValidCombinations = new ArrayList<>();
|
ArrayList<Category> allValidCombinations = new ArrayList<>();
|
||||||
Game game;
|
Game game;
|
||||||
|
@ -22,14 +26,18 @@ public class KniffelSystem {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public String LeaderBaordData(){
|
public String setGamemode(String gamemode){
|
||||||
return "Leaderboard - TODO \n";
|
return game.setGamemode(gamemode);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getGamemode(){
|
||||||
|
return game.getGamemode();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public String addPlayer(int playerNumber, String name) {
|
public String addPlayer(int playerNumber, String name) {
|
||||||
String playerColor = colorPicker(playerNumber);
|
String playerColor = colorPicker(playerNumber);
|
||||||
Player playerToAdd = new Player(playerNumber, name, playerColor, 0);
|
Player playerToAdd = new Player(playerNumber, name, playerColor, 0, getGamemode());
|
||||||
game.addPlayer(playerToAdd);
|
game.addPlayer(playerToAdd);
|
||||||
|
|
||||||
return changeStringFormat(name, playerColor);
|
return changeStringFormat(name, playerColor);
|
||||||
|
@ -326,7 +334,11 @@ public class KniffelSystem {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (contains){
|
if (contains){
|
||||||
currentPlayerSheet.writeCategory(categoryToWrite, false);
|
if (getGamemode().equals("default")) {
|
||||||
|
currentPlayerSheet.writeCategory(categoryToWrite, false);
|
||||||
|
}else {
|
||||||
|
currentPlayerSheet.wr
|
||||||
|
}
|
||||||
}else {
|
}else {
|
||||||
currentPlayerSheet.writeCategory(categoryToWrite, true);
|
currentPlayerSheet.writeCategory(categoryToWrite, true);
|
||||||
}
|
}
|
||||||
|
@ -344,6 +356,81 @@ public class KniffelSystem {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public String afterGame() throws IOException {
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
|
for (Player player : game.getPlayers()){
|
||||||
|
int score = player.getSheet().calcSheet();
|
||||||
|
player.setScore(score);
|
||||||
|
sb.append(String.format("%s scored %d points!", player.toString(), score));
|
||||||
|
writeToFile(createLeaderboardString(player));
|
||||||
|
}
|
||||||
|
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private String createLeaderboardString(Player player){
|
||||||
|
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd.MM.yyy");
|
||||||
|
LocalDateTime now = LocalDateTime.now();
|
||||||
|
|
||||||
|
String date = dtf.format(now);
|
||||||
|
int score = player.getScore();
|
||||||
|
String name = player.getName();
|
||||||
|
|
||||||
|
return String.format("%d - %s - %s \n", score, name, date);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public ArrayList<String> readFromFile() throws FileNotFoundException {
|
||||||
|
ArrayList<String> leaderboardRows = new ArrayList<>();
|
||||||
|
Scanner fsc = null;
|
||||||
|
try {
|
||||||
|
fsc = new Scanner(new File(lederboardLocation));
|
||||||
|
} catch (FileNotFoundException e) {
|
||||||
|
System.out.println("There is an error opening the leaderboard.");
|
||||||
|
System.out.println("Returning to main menu \n");
|
||||||
|
return leaderboardRows;
|
||||||
|
}
|
||||||
|
|
||||||
|
while (fsc.hasNextLine()){
|
||||||
|
leaderboardRows.add(fsc.nextLine());
|
||||||
|
}
|
||||||
|
return leaderboardRows;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void writeToFile(String stringToEnter) throws IOException {
|
||||||
|
|
||||||
|
if (stringToEnter.isEmpty()){
|
||||||
|
BufferedWriter writer = new BufferedWriter(new FileWriter(lederboardLocation));
|
||||||
|
writer.write("");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
System.out.printf("Not empty |%s| \n", stringToEnter);
|
||||||
|
|
||||||
|
ArrayList<String> currentRows = readFromFile();
|
||||||
|
|
||||||
|
currentRows.add(stringToEnter);
|
||||||
|
|
||||||
|
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]));
|
||||||
|
}
|
||||||
|
|
||||||
|
BufferedWriter writer = new BufferedWriter(new FileWriter(lederboardLocation));
|
||||||
|
writer.write(sb.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void clearLeaderboard() throws IOException {
|
||||||
|
writeToFile("");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private HashMap<String, Category> createCategoryHashMap(){
|
private HashMap<String, Category> createCategoryHashMap(){
|
||||||
// TODO starwars sheet implementieren
|
// TODO starwars sheet implementieren
|
||||||
Sheet sheet = new Sheet();
|
Sheet sheet = new Sheet();
|
||||||
|
|
|
80
tui/TUI.java
80
tui/TUI.java
|
@ -3,6 +3,8 @@ package tui;
|
||||||
import domain.Player;
|
import domain.Player;
|
||||||
import fassade.KniffelSystem;
|
import fassade.KniffelSystem;
|
||||||
|
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
@ -10,21 +12,21 @@ public class TUI {
|
||||||
static KniffelSystem gameSystem;
|
static KniffelSystem gameSystem;
|
||||||
static Scanner sc = new Scanner(System.in);
|
static Scanner sc = new Scanner(System.in);
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) throws IOException {
|
||||||
System.out.println("Welcome to the PR2 Kniffel game!");
|
System.out.println("Welcome to the PR2 Kniffel game!");
|
||||||
|
|
||||||
// while (true){
|
while (true){
|
||||||
// mainMenuOutput();
|
mainMenuOutput();
|
||||||
// }
|
}
|
||||||
|
|
||||||
|
|
||||||
// DEV:
|
// DEV:
|
||||||
gameSystem = new KniffelSystem();
|
// gameSystem = new KniffelSystem();
|
||||||
gameSystem.creteDevPlayers(1);
|
// gameSystem.creteDevPlayers(1);
|
||||||
gameLoop();
|
// gameLoop();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void mainMenuOutput(){
|
private static void mainMenuOutput() throws IOException {
|
||||||
System.out.println("What do you want to do?");
|
System.out.println("What do you want to do?");
|
||||||
System.out.println("1 - Play");
|
System.out.println("1 - Play");
|
||||||
System.out.println("2 - See leaderboard");
|
System.out.println("2 - See leaderboard");
|
||||||
|
@ -48,9 +50,15 @@ public class TUI {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void mainMenuPlay(){
|
private static void mainMenuPlay() throws IOException {
|
||||||
gameSystem = new KniffelSystem();
|
gameSystem = new KniffelSystem();
|
||||||
|
|
||||||
|
System.out.println("Do you want to play the default mode (1) or the starwars mode (2)");
|
||||||
|
System.out.print("> ");
|
||||||
|
String mainMenuGamemodeOutput = sc.nextLine();
|
||||||
|
decideGamemode(mainMenuGamemodeOutput);
|
||||||
|
|
||||||
|
|
||||||
System.out.println("How many players are you? (1-6)");
|
System.out.println("How many players are you? (1-6)");
|
||||||
System.out.print("> ");
|
System.out.print("> ");
|
||||||
String mainMenuPlayAmountPlayersInput = sc.nextLine().toLowerCase();
|
String mainMenuPlayAmountPlayersInput = sc.nextLine().toLowerCase();
|
||||||
|
@ -68,9 +76,13 @@ public class TUI {
|
||||||
}
|
}
|
||||||
|
|
||||||
gameLoop();
|
gameLoop();
|
||||||
System.out.println("GAME END"); //! TEST
|
|
||||||
afterGame();
|
afterGame();
|
||||||
}
|
}
|
||||||
|
private static void decideGamemode(String userInput){
|
||||||
|
System.out.println(gameSystem.setGamemode(userInput));
|
||||||
|
System.out.println();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private static void gameLoop(){
|
private static void gameLoop(){
|
||||||
String[] playerStrings = gameSystem.getAllPlayerStrings();
|
String[] playerStrings = gameSystem.getAllPlayerStrings();
|
||||||
|
@ -155,18 +167,56 @@ public class TUI {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static void afterGame(){
|
private static void afterGame() throws IOException {
|
||||||
//TODO sheet berechnen, gewinner entscheiden
|
System.out.println(gameSystem.afterGame());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static void mainMenuLeaderBoard(){
|
private static void mainMenuLeaderBoard() throws IOException {
|
||||||
gameSystem = new KniffelSystem(); // Scorboard System
|
gameSystem = new KniffelSystem(); // Scorboard System
|
||||||
System.out.println(gameSystem.LeaderBaordData()); // TODO
|
|
||||||
|
ArrayList<String> leaderboardRows = gameSystem.readFromFile();
|
||||||
|
|
||||||
|
if(leaderboardRows.isEmpty()){
|
||||||
|
System.out.println("\nThe leadboard is empty, be the first one! \n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
|
for(String leaderboardRow : leaderboardRows) {
|
||||||
|
String[] row = leaderboardRow.split(",");
|
||||||
|
sb.append(String.format("%s - %s - %s \n", row[1], row[0], row[2]));
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("\nLEADERBOARD");
|
||||||
|
System.out.println(sb.toString());
|
||||||
|
|
||||||
|
String deleteLeaderboardOutput = deleteLeaderboardInput();
|
||||||
|
|
||||||
|
if (!(deleteLeaderboardOutput.isEmpty())){
|
||||||
|
System.out.println(deleteLeaderboardOutput);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
System.out.println();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String deleteLeaderboardInput() throws IOException {
|
||||||
|
System.out.println("Clear lederboard? (y/N)");
|
||||||
|
System.out.print("> ");
|
||||||
|
String deleteInput = sc.nextLine().toLowerCase();
|
||||||
|
if ((deleteInput.equals("y")) || (deleteInput.equals("yes"))){
|
||||||
|
gameSystem.clearLeaderboard();
|
||||||
|
return "Cleared leaderboard \n";
|
||||||
|
}
|
||||||
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private static void mainMenuExit(){
|
|
||||||
|
private static void mainMenuExit() throws IOException {
|
||||||
System.out.println("Do you really want to exit? (Y/n)");
|
System.out.println("Do you really want to exit? (Y/n)");
|
||||||
System.out.print("> ");
|
System.out.print("> ");
|
||||||
String mainMenuExitUserInput = sc.nextLine().toLowerCase();
|
String mainMenuExitUserInput = sc.nextLine().toLowerCase();
|
||||||
|
|
Loading…
Reference in New Issue