Sto provando a creare un file con tutti i possibili risultati di tic tac toe e memorizzarlo usando java. Come lo faccio?

-3

Sto provando a memorizzare più di 512 combinazioni di un gioco da qualche parte localmente sul mio disco fisso come un unico file in modo permanente a differenza della natura temeraria degli array. Se lo memorizzo in un file di testo come faccio normalmente, non sarei in grado di accedere facilmente all'ennesima combinazione. C'è qualche tipo di database in cui posso memorizzarlo come fogli XL o tabelle. Sono un noob completo a cose relative al database. Quindi anche le cose di base che suggerisci ti saranno d'aiuto. Userò java per questo

Nota sul gioco: - Sto cercando di memorizzare tutte le combinazioni possibili di un gioco di tris. Supponiamo che io memorizzi una combinazione come "xoooxooox". Ci sono 512 combinazioni possibili per questo (2 ^ 9). Averlo memorizzato riga per riga in un file di testo non è così bello per accedere alla n'a combinazione. Quindi, puoi ragazzi darmi un indizio su come memorizzarlo localmente sul mio hard disk in modo permanente come ho detto prima ...!

Credo che risolverò l'algoritmo e il codice. Ho solo bisogno del tuo aiuto con la parte di archiviazione! ho provato a cercarlo su google e ho fallito ...

Grazie in anticipo!

    
posta Rishi Swethan 03.10.2016 - 23:32
fonte

1 risposta

1

Potrebbero esserci più combinazioni di quanto pensi.

Anche così, con un computer moderno il numero non è poi così grande. Potresti facilmente leggere l'intero file di testo in una matrice in memoria e lavorare con quello.

Un approccio migliore è considerare che il tuo file di dati è molto prevedibile:

9 caratteri (xo o), più uno o due (a seconda del sistema) per la fine della riga.

Supponiamo che il tuo sistema utilizzi un carattere per la fine della riga. Ciò significa che ogni riga ha una lunghezza di 10 caratteri e probabilmente anche di 10 byte. (Supponendo ASCII o UTF-8)

Se vuoi leggere la terza riga, dovrai cercare in posizione 30, quindi leggere 10 byte.

Non ho programmato Java da decenni, quindi non ho le chiamate di libreria specifiche. Questo esempio di java2s può aiutare:

import java.io.File;
import java.io.FileInputStream;

public class Main {
    public static void main(String[] args) throws Exception {
        File file = new File("C:/String.txt");
        FileInputStream fin = new FileInputStream(file);

        int ch;
        // skip first 30 bytes
        fin.skip(30);

        for (int i =0; i < 10; i++) {
            ch = fin.read();
            myString = myString + ch;
        }
    }
}
    
risposta data 03.10.2016 - 23:45
fonte

Leggi altre domande sui tag