Hallo!
Ich weiß, dass ihr bei der Überschrift vielleicht denkt, dass hatten wir schon alles, doch ich möchte die Datei anders überschreiben.
Also:
Ich habe einen Highscore, der von einer anderen Klasse nach einem Spiel zurückgegeben wird.
Vor dem Spiel wird der Name von einer Liste ausgewählt oder ein neuer erstellt. Doch zu dem Neuen komme ich noch.
Es gibt eine Liste mit den Namen und eine mit den Punkten. Und wenn das Spiel fertig ist, sollen beide Listen NEU geschrieben werden. Also nicht nur ein Eintrag neu, sondern die ganze Liste, auch wenn es nur eine Aktualisierung gibt.
Bis jetzt habe ich dies:
Wenn sich einer die Zeit nehmen würde und diesen Code mal genau ansieht, fände ich das sehr nett und eine große Hilfe. :toll:
Wie würdet ihr den Code verändern, damit er "passt"? Ich hoffe, es kommen nicht all zu viele neue Befehle hinzu, denn ich bin doch eigentlich noch ziemlich neu in Java.
Danke eure Hilfe!
Ich weiß, dass ihr bei der Überschrift vielleicht denkt, dass hatten wir schon alles, doch ich möchte die Datei anders überschreiben.
Also:
Ich habe einen Highscore, der von einer anderen Klasse nach einem Spiel zurückgegeben wird.
Vor dem Spiel wird der Name von einer Liste ausgewählt oder ein neuer erstellt. Doch zu dem Neuen komme ich noch.
Es gibt eine Liste mit den Namen und eine mit den Punkten. Und wenn das Spiel fertig ist, sollen beide Listen NEU geschrieben werden. Also nicht nur ein Eintrag neu, sondern die ganze Liste, auch wenn es nur eine Aktualisierung gibt.
Bis jetzt habe ich dies:
Java:
public void neuschreiben() {
readList();
BufferedWriter scores3A;
BufferedWriter scores3B;
punkte2 = new int[nr];
namen1 = new String[nr];
String punkte[] = new String[nr];
String[] namen2 = null;
String[] namen3; // ich weiß nicht, ob null so richtig ist ^^
int[] punkte3 = null;
int[] punkte4;
boolean alreadyName = false;
int nZähler;
for(nZähler = 0; nZähler < nr; nZähler++) {
punkte[nZähler] = punktzahl.get(nZähler).toString();
punkte2[nZähler] = Integer.parseInt(punkte[nZähler]);
namen1[nZähler] = spieler.get(nZähler).toString();
if(name == namen1[nZähler]) {
namen2 = new String[nZähler];
punkte3 = new int[nZähler];
for(int i2 = 0; i2 < nZähler; i2++) {
namen2[i2] = namen1[i2];
punkte3[i2] = punkte2[i2];
}
alreadyName = true;
}
}
int newPoints = 150; // muss noch in einzelsp (die Gameklasse) initialisiert werden
int pZähler;
namen3 = new String[nr - nZähler + 1];
punkte4 = new int[nr - nZähler + 1];
for(pZähler = 0; pZähler < nr - nZähler + 1; pZähler++) {
namen3[pZähler] = namen1[pZähler+nZähler];
punkte4[pZähler] = punkte2[pZähler+nZähler];
}
if(alreadyName == true) {
try {
scores3A = new BufferedWriter(new FileWriter(hPfad));
scores3B = new BufferedWriter(new FileWriter(hPfad2));
for(int i5 = 0; i5 < nZähler; i5++) {
scores3A.write(namen2[i5] + "\n\r");
}
scores3A.write(name + "\n\r");
for(int i5 = 0; i5 < nr - nZähler; i5++) {
scores3A.write(namen3[i5] + "\n\r");
}
for(int i5 = 0; i5 < pZähler; i5++) {
scores3B.write(punkte3[i5] + "\n\r");
}
scores3B.write(newPoints + "\n\r");
for(int i5 = 0; i5 < nr - pZähler; i5++) {
scores3B.write(punkte4[i5] + "\n\r");
}
}
catch(Exception x) {}
}
// und jetzt käme bald die Möglichkeit, die Liste mit einem Neuen Namen zu schreiben
}
}
Wenn sich einer die Zeit nehmen würde und diesen Code mal genau ansieht, fände ich das sehr nett und eine große Hilfe. :toll:
Wie würdet ihr den Code verändern, damit er "passt"? Ich hoffe, es kommen nicht all zu viele neue Befehle hinzu, denn ich bin doch eigentlich noch ziemlich neu in Java.
Danke eure Hilfe!