Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich muss bzw. will für unsere Brettspieleliga ein kleines Programm zur Verwaltung entwerfen. Es gibt zwar frei benutzbare aber da haben wir immer Probleme mit den Funktionen. Leider ist es ca. 10 Jahre her, dass ich zuletzt etwas programmiert habe und ich habe schrecklich viel vergessen.
Da unsere Liga aus Spielern besteht, dachte ich dass ich mir zunächst eine Klasse Spieler erstelle, die die Notwendigen informationen eines Spielers bereitstellt. Bisher habe ich:
Java:
public class Eingabe {
public static void main(String[] args) {
int Spielerzahl;
int merkerSpielerzahl;
System.out.println("Wie viele Spieler sollen an der Liga teilnehmen?");
Spielerzahl = IO.readInt();
merkerSpielerzahl = Spielerzahl;
// Hier soll für jeden Spieler ein Profil angelegt werden
while (merkerSpielerzahl != 0){
System.out.println("Wie soll der Name des "+merkerSpielerzahl+". lauten?");
Spieler eins = new Spieler();
eins.Vorname = IO.readLine();
eins.Spiele = IO.readInt();
eins.Punkte = IO.readInt();
merkerSpielerzahl = merkerSpielerzahl-1;
}
}
}
Java:
public class Spieler {
String Vorname;
int Spiele;
int Punkte;
}
IO ist eine Klasse, die diverse Ein- und Ausgabefunktionen zur Verfügung stellt. Die habe ich noch von früher.
Mein Problem ist jetzt folgedes: Die neu angelegten Spieler müssen ja irgendwie gespeichert werden, so dass ich später auf sie zugreifen kann - also in eine Liste oder ein Array sortiert werden. Ich hab nur überhaupt keine Ahnung mehr wie das geht
Frage 1: Gehe ich vom Grundgedanken überhaupt richtig vor oder bin ich total auf dem Holzweg?
Frage 2: Wo gibt es eine verständliche Anleitung, die mir bei meinem Problem hilft? Ich finde selber irgendwie nix...
Du kannst die Spieler in eine Textdatei schreiben und somit speichern, sowie aus dieser wieder lesen, wenn nötig.
Über was für Funktionen soll das Programm denn verfügen?
PS: Ich persönlich würde statt der while-Schleife eine for nehmen
Das Programm soll einmal:
- Die Spieler speichern
- Es soll Spielpaare und Spieltage ausgeben
- Man muss bei den Spielpaaren und Tagen eingeben können, mit wie vielen Punkten die Spieler gewonnen haben
- Es soll eine Tabelle ausgeben können, die auflistet, welcher Spiele wie viele Punkte hat
Ok. Ich würde, der Einfachheit halber, die Spieler in Textform abspeichern.
Eine Klasse Spiel erstellen, die zwei Spieler als Parameter aufnimmt, sowie ein Datum. Die Spieltage und Spieler kannst du ja während des Laufens in Arrays oder Listen deponieren, um damit hantieren zu können
Die nachträglichen Einträge bei den Spieltagen/-paaren kannst du ja per Setter setzen.
Bei der Tabelle würdest du einfach die Spieler Liste durchlaufen und eine entsprechende Funktion des Spielers aufrufen, die Spielername ausgibt und dessen Punkte.
Vielen Dank.
Ich dachte mir, ich versucht mich mal daran die Datein in der txt zu hinterlegen. Die kann ich jedoch nirgendwo finden... kann das an Eclipse liegen oder habe ich was falsch gemacht?
Er spuckt mir zumindest keinen Fehler aus...
Hier meine Main Klasse:
Java:
public class Eingabe {
public static void main(String[] args) {
int Spielerzahl;
String Dateiname;
//Noch ohne Funktion
System.out.println("Soll eine neue Liga gestartet werden?");
System.out.println("Wie soll die neue Liga heißen?");
Dateiname = IO.readLine();
//Anlegen einer neuen Datei --> ruft Dateischreiber DateiName auf und vergibt so den Namen für die neue Datei
DateiSchreiber Liga = new DateiSchreiber();
Liga.DateiName = Dateiname;
System.out.println("Wie viele Spieler sollen an der Liga teilnehmen?");
Spielerzahl = IO.readInt();
for (int merkerSpielerzahl = Spielerzahl; merkerSpielerzahl != 0; merkerSpielerzahl = merkerSpielerzahl-1){
System.out.println("Wie soll der Name des "+merkerSpielerzahl+". lauten?");
Spieler eins = new Spieler();
Liga.eins.Vorname = IO.readLine();
System.out.println("Wie viele Punkte hat der "+merkerSpielerzahl+". Spieler?");
Liga.eins.Punkte = IO.readInt();
}
}
}
Java:
public class Spieler {
String Vorname;
int Punkte;
}
Hier soll eine Datei angelegt werden:
Code:
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class DateiSchreiber {
FileWriter Schreiber;
File Datei;
String DateiName;
Spieler eins = new Spieler();
public void schreiben(){
Datei = new File (DateiName+".txt");
try {
// new FileWriter(Datei ,true) - falls die Datei bereits existiert - werden die Bytes an das Ende der Datei geschrieben
Schreiber = new FileWriter(Datei, true);
Schreiber.write(System.getProperty(DateiName));
Schreiber.write(System.getProperty(eins.Vorname));
Schreiber.write(eins.Punkte);
Schreiber.flush();
Schreiber.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Die Datei müsste im selben Verzeichnis wie das Programm sein. Wenn du das nicht willst, musst du das entsprechend bei new File(path+File.Seperator+dateiName+".txt"); o.Ä.