Grundsätzlich hat jedes Zimmer eine Größe von 10 mal 10, das "W" steht für die Wände und die Leerstellen - "" für das Stockwerk, und die Zahlen sind Doors.Ich dachte, der beste Weg, um den Raum zu erstellen ist eine Methode, die eine Datei empfängt und sie liest und ihre "Information" in einen String [10] [10] legt, und dann eine andere Methode (oder einfach in meinem Main) erstelle, die den erzeugten String [10] [10] empfängt und schafft den Raum (fügt die Bilder dem Raum hinzu), aber ich habe einige Schwierigkeiten, die Datei zu lesen, also, wenn Sie mir mit diesem Teil helfen konnten, würde ich dankbar sein. Hier ist die Art von Textdateien, von denen ich möchte mein Zimmer schaffen:Wie lade ich einen Level/Raum aus einer Textdatei in Java?
WWWW0WWWWW
W W
W W
W W
W W
W WW
W WW
W WW
W W1
WWWWWWWWWW
Hier sind die Türen, Wand- und Bodenklassen:
public class Door implements ImageTile {
private Position position;
public Door(Position position) {
this.position = position;
}
@Override
public String getName() {
return "Door";
}
@Override
public Position getPosition() {
return position;
}
}
public class Floor implements ImageTile {
private Position position;
public Floor(Position position) {
this.position = position;
}
@Override
public String getName() {
return "Floor";
}
@Override
public Position getPosition() {
return position;
}
}
public class Wall implements ImageTile {
private Position position;
public Wall(Position position) {
this.position = position;
}
@Override
public String getName() {
return "Wall";
}
@Override
public Position getPosition() {
return position;
}
}
Und das ist meine Methode, um Bilder zu meinem Rahmen hinzufügen:
public void newImages(final List<ImageTile> newImages) {
if (newImages == null)
return;
if (newImages.size() == 0)
return;
for (ImageTile i : newImages) {
if (!imageDB.containsKey(i.getName())) {
throw new IllegalArgumentException("No such image in DB " + i.getName());
}
}
images.addAll(newImages);
frame.repaint();
}
Wenn ihr mir helfen könnte ich es schätzen würde sehr, dank guys.Her ist das, was ich habe jetzt:
public class Room {
private String[][]room;
public Room(){
room = new String[10][10]; }
public static Room fromFile(File file){
if(file.exists()){
Scanner sc = null;
Room room = new Room();
try {
sc = new Scanner(file);
while(sc.hasNextLine()){
if(sc.nextLine().startsWith("#"))
sc.nextLine();
else{
String[] s0 = sc.nextLine().split("");
//Here is where my trouble is, i dont know how to add the content of this String s0 to the String s
if(s0.length==10){
for(int x = 0; x < 10; x++){
for(int y = 0; y < 10; y++){
String[x][y] s= String[x] s0;
}
}
} catch (FileNotFoundException e) {
System.out.println("Ficheiro "+file.getAbsolutePath()+
" não existe. "); }
finally{
if(sc!=null)sc.close();
}
}
else
System.out.println("Ficheiro "+file.getAbsolutePath()+
" não existe. ");
return null;
}
Willkommen bei Stack Overflow! "... _Ich dachte, der beste Weg, den Raum zu erstellen, besteht darin, eine Methode zu erstellen, die eine Datei empfängt und sie liest und ihre" Informationen "in einen String [10] [10] legt und dann eine andere Methode ... erstellt erhält den String [10] [10] erstellt und erstellt den Raum ...aber ich habe ein paar Schwierigkeiten, die Datei zu lesen, wenn ihr mir mit diesem Teil helfen könnt ... "Was für Code ihr zur Verfügung gestellt habt, ist interessant, hat aber fast nichts mit eurem Problem zu tun. Ihr müsst zumindest versuchen, Code zu schreiben zum Lesen einer Datei in einen String [10] [10], bevor Sie hier um Hilfe bitten. – AJNeufeld
Ich habe ein paar, ich werde es jetzt hinzufügen. Danke. – GamerGirl