2016-09-30 1 views
0

Ich weiß, das ist wahrscheinlich sehr einfach, aber ich habe es stundenlang versucht und kann das immer noch nicht alleine herausfinden. Im Moment mache ich das 8-Puzzle-Spiel für meine AI-Klasse. Ich brauche den Benutzer, um eine Reihe von Zahlen einzugeben, sagen wir: "032 145 678" und ich muss dies einfach in einer 3x3-Matrix speichern, wobei 0 im Grunde einen leeren Block darstellt. Also sollte es diese Benutzereingabe nehmen und speichern wie {{032}, {145}, {678}}, eine 3x3-Matrix.Wie nehme ich Eingaben von einem Benutzer und lege sie in eine Matrix ein?

EDIT:

public void ReadFromTxt(String file) throws FileNotFoundException, IOException { 
    String read; 
    FileReader f = new FileReader(file); 
    int i = 0; 
    int j; 
    BufferedReader b = new BufferedReader(f); 
    System.out.println("Loading puzzle from file..."); 
    while((read = b.readLine())!=null){ 
     if(read.length()==3){ 
      for(j=0;j<3;j++){ 
       board[i][j] = (int)(read.charAt(j)-48); 
      } 
     } 
     i++; 
    } 
    b.close(); 
    System.out.println("Puzzle loaded!"); 
} 
+0

Was ist die Programmiersprache? Und wenn Sie "Zahlen" sagen, ist eine Zahl etwas wie "145". Die einsame "1" ist hier eine "Ziffer". Möchten Sie Zahlen oder nur Ziffern zwischen 0 und 9 in Ihrer Matrix speichern? –

+0

Die Sprache ist Java, sorry sollte angegeben haben. Nur Nummern 0-9, also wäre es wie eine 3x3 Matrix mit 0 3 2, 1 4 5, 6 7 8 – thetemptations

Antwort

0

Der beste Weg ist es, den Benutzer speichert die Ziffern in einer Textdatei haben. Das Textdateiformat ist 3 Zeilen, jede Zeile darf nur 3 Ziffern haben und die Ziffern beginnen am Anfang jeder Zeile.

Ihr Programm sollte den Namen der Datei übernehmen, wobei die Ziffern gespeichert sind, als Argument.

Das Programm ordnet sich eine 3x3 Matrix von ganzen Zahlen ohne Vorzeichen, öffnet die Datei und liest jede Zeile der Reihe nach. Es prüft, ob das Format der Zeile korrekt ist: es muss am Anfang 3 Ziffern haben, Leerzeichen danach erlaubt. Wenn es nicht korrekt ist, druckt das Programm eine Fehlermeldung an den Benutzer und wird beendet.

Wenn das Format der Zeile korrekt ist, werden die Ziffern in einer Zeile des Arrays gespeichert.

Bei mehr als 3 Zeilen, wieder, gibt das Programm eine Fehlermeldung aus und beendet das Programm.

+0

Also habe ich oben einen Schnitt gemacht, würde sowas funktionieren? Wenn ich es in eine Textdatei lege, wie soll ich die Datei benennen und wo soll ich sie hinstellen? – thetemptations

+0

Ich kann Ihr Programm nicht für Sie debuggen, bis Sie versucht haben, sich selbst zu debuggen, alle gefundenen Fehler gefunden und die restlichen, falls vorhanden, isoliert haben. Dabei wirst du sehr viel lernen. Sie können dann die isolierten Fehler hier veröffentlichen. Was den Namen angeht, können Sie ihm einen Namen geben und ihn überall hinstellen, wo Ihr Programm darauf zugreifen kann. –

Verwandte Themen