Hey,
Also.. ich möchte derzeit ein Hacking Spiel entwickeln das im Grunde genommen eine Konsole inklusive Dateisystem, Programme & co. simuliert.
Ich habe nun die Grundlegende Simulation der Konsole (annehmen von Befehlen usw) fertig vom Grundsätzlichen, stecke aber jetzt beim Konzept / der Strukturierung des simulierten Dateisystems fest. Ich dachte daran die Dateistruktur in ein Array / JSON Objekt zu packen, aber genau daran scheitert es leider.
Probleme die ich habe:
- navigieren innerhalb des Array / Json Objekt (Virtuelle Ordner)
- JSON / Array / Baum ???
Kurz gesagt - ich weiß nicht was ich am besten nehmen soll.. ein JSON Objekt? Array? Oder vielleicht doch was komplett anderes?
Ich habe bisher noch nie etwas programmiert wo ich solch eine Datenstruktur benötigt hätte und habe somit auch keine Idee wie ich das ganze am besten einfach & performant lösen könnte. Grundlegend betrachtet brauche ich eine Datenstruktur wie z.b https://de.wikipedia.org/wiki/Baum_(Graphentheorie) - nur weiß ich nicht wie ich das so wie ichs brauche dann in Code umsetze
Ich hatte im laufe von 2-3 Wochen schon unterschiedliche Ansätze, die ich aber bisher alle verwerfen musste weil sie entweder im Laufe der Zeit zu komplex wurden und nicht funktionierten, oder einfach vom Gedankenkonzept her falsch durchdacht waren und dann nicht das ermöglichten was ich brauche
Als Grundsätzliche Anforderungen & Gedankenmodell habe ich folgendes:
Dateien und Ordner sind von der Struktur her ähnlich aufgebaut.. und zwar so:
FS_NAME | FS_TYPE | FS_CONTENT
FS_NAME = Der Datei / Ordnername
FS_TYPE = 1 oder 0.. jenachdem obs ein Ordner ist oder eine Datei
FS_CONTENT = Wenn es eine Datei ist, steht dort der Dateinhalt in Form eines Strings drine, ist es ein Ordner enthält es wiederum ein Array / Objekt das weitere Dateistrukturen enthält die genau aufgebaut sind wie alle anderen Dateien.
In Javascript würde solch ein Objekt z.b so aussehen können..
Code:
var File = ['Helloworld.txt', 1, 'This is a Example!'];
var Directory = ['logs', 0, [['log1.txt', 1, 'Logfile 1!'], ['log2.txt', 1, 'Logfile 2!']]];
Das ganze ist aber von der Struktur nicht wirklich sinnvoll weil man dann nicht wirklich darin navigieren kann (mittels cd / cd.. befehl).. vorallem wenns dann mehr als eine Ordnertiefe hat. Ich bräuchte hier irgendeine Referenz auf die "vorherige Tiefe", aber hier scheitert es weil ich ja nicht jedesmal das komplette Dateistruktur Objekt übergeben kann.. das artet in extreme Komplexität & Aufwand aus (und ich habs bisher auch noch nicht bugfrei hinbekommen).
Daher ist jetzt meine Frage.. hat jemand eine Idee wie ich sowas am besten lösen könnte? Das Problem ist jetzt nicht spezifisch Javascript bezogen.. das ist eher eine Frage von "Wie baue ich das am besten als Code?". Entweder ich bin zu unkreativ oder whatever.. ergo.. bitte helft mir wenn ihr ne Idee habt wie man sowas umsetzen könnte^^
p.s: Vorallem muss ich dann halt das Dateistruktur Objekt auch entsprechend anpassen können, heißt Elemente entfernen / hinzufügen etc.. was es wieder komplexer werden lässt eventuell.. momentan ist das für mich ein totaler mindf*ck :x Habe auch schon gefühlt das halbe Internet danach abgesucht wie man solch eine Baumstruktur in JS aufbauen kann, aber habe dort nur Dinge gefunden die nicht das tun was ich brauche.
grüße & danke schon einmal