Input/Output TicTacToe-Savegame

shiroX

Mitglied
Hallo, ich sitze noch an TicTacToe und schreibe momentan Methoden zum Speichern des momentanen Spielstandes und danach auch zum wieder laden.

Beim Speichern des Spielstandes war ich eigentlich schon relativ erfolgreich, hier nur mal eine Frage: Ist es auch möglich den Spielverlauf zu speichern und nicht nur das aktuelle Array? Also sprich dass mehrere Arrays im txt-File stehen und nicht nur das letzte?

Mein Code sieht momentan so aus:

Java:
public static void writeArrayToFile (int[][] array, String filename){
        PrintWriter writer;
        try{
            writer = new PrintWriter(new FileOutputStream(filename), false);
            for (int i = 0; i < array.length; i ++){
                for (int j = 0; j < array.length; j++){
                    int s = array[i][j];
                    writer.print(s);
                }
                writer.println("");
            }
            writer.close();
        } catch (FileNotFoundException e){
            System.out.println(e.getMessage());
        }
    }

Das ist meine Methode zum abspeichern des Arrays, funktioniert auch soweit ganz gut.

Irgendwo hatte ich gelesen dass in dieser Zeile:

Java:
 writer = new PrintWriter(new FileOutputStream(filename), false);

Wenn man den hinterenWert auf true setzt, das File nicht überschrieben wird sondern dann einfach ein append folgt. Hat bei mir allerdings nicht funktioniert.
 
Nein.
Das boolean steht für einen autoflush
upload_2016-5-13_7-4-0.png

Als Lösungsvorschlag:
1. Du könntest generell jeden Spielzug sofort abspeichern, nachdem er ausgeführt wurde. Dazu lädst du deine save.file und hängst dass neue Array einfach hintern dran mit einem StringBuilder. Danach speicherst du die Datei wieder.

2. Du hältst pro Spielzug ein Array in einem anderen Array. Bei TicTacToe sind ja die Spielzüge begrenzt. Beim Beenden des Spiels oder beim Speichern schreibst du deine Werte in die Datei.
 

Neue Themen


Zurück
Oben