From 6513d39cd3d28dabbd86bdd67de331f0059de5e0 Mon Sep 17 00:00:00 2001 From: akarkout Date: Sun, 10 Jan 2021 18:35:29 +0100 Subject: [PATCH] =?UTF-8?q?Fehlende=20Features=20hinzuf=C3=BCgen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/de/jaujau/daten/Spielerdaten.java | 26 ++++-- src/de/jaujau/daten/Spielerverwaltung.java | 102 ++++++++++++++------- src/de/jaujau/spiellogik/Anwendung.java | 2 - 3 files changed, 87 insertions(+), 43 deletions(-) diff --git a/src/de/jaujau/daten/Spielerdaten.java b/src/de/jaujau/daten/Spielerdaten.java index 88dce4b..c0b6336 100644 --- a/src/de/jaujau/daten/Spielerdaten.java +++ b/src/de/jaujau/daten/Spielerdaten.java @@ -14,24 +14,27 @@ package de.jaujau.daten; public class Spielerdaten { - int punktestand; // Punktestand des Spielers - String name /* = Spieler.getSpieler() */; // Name des Spielers - - public void punktestandErhoehen(int punkt) { // Methode zum Erhoehen des Punktestandes - punktestand += punkt; - + private int punktestand; // Punktestand des Spielers + private String name /* = Spieler.getSpieler() */; // Name des Spielers + + public Spielerdaten (String name, int punkte) { //Arraylist + this.name = name; + this.punktestand = punkte; } - + /** * Get the value of punktestand * * @return the value of punktestand */ - public int getPunktestand() { + public int getPunktestand() { //Zurückgeben der gesammelten Punkte return punktestand; } - + + public void setPunktestand(int punkte) { //Einsetzen des Punktestands (kann gelöscht werden, wenn niemand sie braucht) + punktestand = punkte; + } /** * Get the value of name * @@ -40,4 +43,9 @@ public class Spielerdaten { public String getName() { return name; } + + public void setName(String Name) { //Einsetzen des Namen des Spielers + name = Name; + } + } diff --git a/src/de/jaujau/daten/Spielerverwaltung.java b/src/de/jaujau/daten/Spielerverwaltung.java index 460d6b1..e6b7b33 100644 --- a/src/de/jaujau/daten/Spielerverwaltung.java +++ b/src/de/jaujau/daten/Spielerverwaltung.java @@ -8,22 +8,31 @@ package de.jaujau.daten; import java.io.BufferedReader; +import java.io.BufferedWriter; import java.io.FileReader; +import java.io.FileWriter; import java.io.IOException; +import java.util.ArrayList; public class Spielerverwaltung { + private int index = 15; private int level; - private Spielerdaten spieler; + private ArrayList daten = new ArrayList(); - private String name = "Mark Zuckerberg"; // Testeintrag - + public void addSpieler(String name, int punkte) { //Neue Spieler hinzufügen + //leseDaten(); + addZeilen(); + daten.add(new Spielerdaten(name, punkte)); + } + /** * Set the value of level * * @param newlevel the new value of level */ + public void setLevel(int newlevel) { level = newlevel; } @@ -33,18 +42,18 @@ public class Spielerverwaltung { * * @return the value of level */ + public int getLevel() { return level; } - /** - * Get the value of name - * - * @return the value of name - */ - public String getName() { - - return name; + public String [][] toArray (ArrayList a){ //Arraylist in Array umwandeln + String [][]neuerArray = new String [15][2]; + for (int j = 0 ; j< a.size(); j++) { + neuerArray[j][0] = a.get(j).getName(); + neuerArray[j][1] = Integer.toString(a.get(j).getPunktestand()); + } + return neuerArray; } /** @@ -52,33 +61,68 @@ public class Spielerverwaltung { * * @param newSpieler the new value of spieler */ - public void setSpieler(Spielerdaten newSpieler) { - spieler = newSpieler; - } - - /** + + public void setSpieler(Spielerdaten a) { + spieler = a; + } + + public void addZeilen() { //die Zeilen der Textdatei erweitern + index ++; +} + +/** * Get the value of spieler arraylist von Spieler * * @return the value of spieler */ + public Spielerdaten getSpieler() { return spieler; } - // - // Other methods - // - + public ArrayList getDaten() { // Zurückgeben der gelesenen Daten aus der Textdatei + return daten; + } + + public void umsetzeDaten( String [][] neueDaten) { //Arraylist aus Array + for (int i = 0 ; i < neueDaten.length; i++) { + daten.add(new Spielerdaten (neueDaten[i][0], Integer.parseInt(neueDaten[i][1]))); + } + } /** */ - public void leseDaten() { - throw new UnsupportedOperationException(); + public void leseDaten() { //lese Daten aus der Textdatei und speichere die in die Arraylist + umsetzeDaten(gethighscoreTabelle()); + /* for (Spielerdaten a : daten) { // Müll + System.out.println(a.getName() + " " +a.getPunktestand()); + }*/ } - /** - */ - public void speichernDaten() { - throw new UnsupportedOperationException(); + public void speichernDaten() { //Speichere die bearbeiteten Daten in die Textdatei (Aus der Arraylist) + //leseDaten(); + ArrayList newDaten = getDaten(); + String [][] umwandelteDaten = new String [index][2]; + int i = 0; + if (! newDaten.isEmpty()) { + for (Spielerdaten inhalt : newDaten ) { + umwandelteDaten [i][0] = inhalt.getName(); + umwandelteDaten [i][1] = Integer.toString(inhalt.getPunktestand()); + i++; + } + try { + BufferedWriter writer = new BufferedWriter(new FileWriter("highscore.txt")); //Erzeugen eines effizienten Writers für Textdateien + for (int j = 0; j < umwandelteDaten.length; j++) { + writer.write(umwandelteDaten [j][0] +" "+umwandelteDaten [j][1]); + writer.newLine(); + } + writer.close(); + } + catch(IOException ioe) { + System.err.println(ioe); + } + } + else + System.err.println("Es gibt keine Dateien zum Speichern!"); } // Die Highscore-datei wird geoeffnet und die Daten als zweidimensionales Array @@ -97,7 +141,6 @@ public class Spielerverwaltung { while (line != null) { lineArray = line.toCharArray(); for (int i = 0; i < lineArray.length; i++) { - if (lineArray[i] != ' ' && score.length() == 0) { name += lineArray[i]; } else if (lineArray[i] == ' ' && name.length() != 0) { @@ -107,26 +150,21 @@ public class Spielerverwaltung { } else if (score.length() != 0) { score += lineArray[i]; insArray = true; - } } - if (insArray) { rowData[zeilennummer][0] = name; rowData[zeilennummer][1] = score; insArray = false; } - zeilennummer++; name = score = ""; line = reader.readLine(); } reader.close(); - } catch (IOException e) { e.printStackTrace(); } - return rowData; } } diff --git a/src/de/jaujau/spiellogik/Anwendung.java b/src/de/jaujau/spiellogik/Anwendung.java index 5bd8b69..01a43f1 100644 --- a/src/de/jaujau/spiellogik/Anwendung.java +++ b/src/de/jaujau/spiellogik/Anwendung.java @@ -18,7 +18,6 @@ public class Anwendung { private Texturenpakete texturenpakete; private Spielerverwaltung speicherung; private GUI view; - // // Constructors @@ -27,7 +26,6 @@ public class Anwendung { speicherung = new Spielerverwaltung(); texturenpakete = new Texturenpakete(); view = new GUI(texturenpakete, speicherung); - }; /**