Input/Output Inventar/Ausrüstung abspeichern (in DB?)

Blackhole16

Bekanntes Mitglied
Liebe com,

Dieses Thema hat erstmal nur bedingt mit Java zu tun, aber ich wollte euch mal fragen, wie man am Besten ein Inventar/Ausrüstung abspeichern sollte (Bsp: Mittelalter). Ich habe erst einmal wenige Ideen und bin mir auch nicht sicher, ob diese auch gut sind.
1. eine Durchnummerierung aller verschiedenen Items mit IDs, nur leider variieren die verschiedenen Attribute, womit das ein sehr großer Aufwand wäre. Dann muss ich mir nur noch Gedanken machen, wie ich die Reihenfolge im Inventar abspeichere, denn das wird sicher auch noch einmal schwer...
2. eine spezielle Durchnummerierung nach dem Motto xxXXyyyYYYzzzZZZ... : xx Art des Ausrüstungsgegenstandes (Rüstung, Waffe, Schwert, etc); XX Ausrüstungsgegenstand (z.B. welche Waffe genau); yyyYYYzzzZZZ... die verschiedenene Attribute (z.B. bei Waffen Schaden, Geschwindigkeit, Genauigkeit, etc) Das speicher ich dann einfach als Zahl (bzw String, besser zu lesen durch charAt) ab. Auch wieder das Reihenfolgeproblem...
3. mehrere (mehrdimensionale) Arrays, die ich dann über einen Objectoutputstream schreibe. Damit habe ich mich aber noch nicht beschäftigt, habs bisher noch nicht gebraucht. Leider habe ich dabei auch Bedenken wegen der DB, ob man das da auch speichern kann... In einem speichere ich die Ausrüstung mit all ihren Werten und in den Anderen die Inventarslots mit der Nummer im Ausrüstungsarray.

Ich glaube, dass 3 (wenn es so geht) am einfachsten zu verwirklichen ist (besonders das Einlesen dürfte kaum Probleme machen).
Sonst würde ich Nummer 2 der 1 vorziehen, wobei natürlich der Einleseaufwand stark steigt (massenhaft if-else). Leider weiß ich hier aber noch nicht, wie man die genaue Position in den Inventarslots realisiert...

Was würdet ihr dazu sagen? Zu welcher Variante tendiert ihr? Habt ihr neue Vorschläge?
Wie würdet ihr die Reihenfolge der Items im Inventar machen?
Fallen euch noch neue Fragen ein, die geklärt werden müssten?

Ich habe unter google dazu irgendwie nichts gutes gefunden... (vllt. falsche Keywords?) Meist kam einfach nur wie man bei den verschiedensten Spielen seinen Spielstand sichert (ist das denn so schwer? Das habe ich mit 10 das erste Mal ohne irgendwelche Hilfe hinbekommen ;) )

Danke schon im Voraus für eure Mitarbeit.

mfg
BH16
 

GreenIguana

Mitglied
Die Durchnummerierung mit je einem Index pro Item ist wahrscheinlich das naheliegenste.
Die Matrix des Inventars könnte (auch mit Indizes) wie die Verteilung der Pixel im Grafikkartenspeicher im zweidimensionalen Koordinatensystem umgesetzt werden.
Bsp.: 30 Inventar-Slots → oben/unten links: index = 0; unten/oben rechts: index = 29;

PS: Und mit Attributen meinst Du zB. Stärke? Man könnte entweder in einer Klasse "Item" in einem static-Block alles ("Attribute", ID, Bild) über den Item-Konstruktor regeln (Man muss dann nur vorher schonmal die Items in der selbigen Klasse Deklarieren, kann dann wenn man z.B. eine Brustplatte kauft auf den ersten freien Index des Inventars eine Referenz zur
Code:
Item.itemChestplate
legen) oder man macht einzelne Klassen die von
Code:
Item
erben und dann zum Beispiel
Code:
ItemChestplate
heißen.

Oh, Mann: 4 mal "zum Beispiel":eek:
Hoffe es hat geholfen:D,
Leguan
 
Zuletzt bearbeitet:

turtle

Top Contributor
Ich gebe zu nur die Hälfte der Frage wirklich verstanden zu haben ;-)

Ich bin der Meinung, dass eine Realisierung eines Inventars nichts damit zu tun hat, wie dieses später in einer Applikation, wahrscheinlich ein Spiel, verwendet wird. Das liegt daran, dass Du verschiedene Layer (Backend, Persistenz) mit der GUI (Präsentation, View) zusammenschmeisst, die wenig miteinander zu tun haben.

Ich würde ein Inventar in einer (embedded) relationalen DB speichern. Damit kannst Du auf einen grossen Fundus von Tools (JPA, Hibernate) zurückgreifen um die Modellierung des Inventars in einer DB zu ermöglichen.

Ich würde beginnen eine Tabelle Inventar zu entwickeln, in der Spalten enthalten sind die die Attribute enthalten, die Du benötigst. Wahrscheinlich ist dann der Entwurf nicht in der dritten Normalform, aber das ist häufig der Fall. Zum Beispiel scheint dir wichtig zu sein, eine Reihenfolge im Inventar einzuhalten. Also könntest Du dies im ersten Schritt über eine Reihenfolge-Spaltre (vom Typ int ?) abbilden.

Der Applikationscode sollte über ein Inventar-DAO auf das Inventar zugreifen und damit die Details des Zugriffs auf eine DB darin kapseln. Damit ist der Applikationscode unabhängig vom Zugriff auf eine DB und kann zum Beispiel für einen Test auf eine InMemory-Variante gewechselt werden. Ein derartiges DAO stellt dann das Interface der Applikation dar, um auf das Inventar zuzugreifen. Dieses ist dann abhängig von Deinen Anforderungen. Zum Beispiel kann der DAO das Inventar in der Reihenfolge liefern.
(select Attribut1, Attribut2,.. from Inventar order by Reihenfolge asc)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Arraylist vollständig abspeichern und laden Allgemeine Java-Themen 1
G Excel File öffnen, in Zelle schreiben, abspeichern Allgemeine Java-Themen 6
J Variablen Mehrere int-variablen in txt abspeichern und danach wieder auslesen Allgemeine Java-Themen 1
J Input/Output Word Datei einlesen, verarbeiten und abspeichern Allgemeine Java-Themen 3
F String in OpenOffice Ods datei abspeichern? Allgemeine Java-Themen 8
L Daten ohne Datenbank richtig abspeichern Allgemeine Java-Themen 5
D Variablen java.io.File zum vergleichen abspeichern Allgemeine Java-Themen 1
G Baumstruktur abspeichern Allgemeine Java-Themen 9
A Java - Beim Abspeichern Redundanzen vermeiden! Allgemeine Java-Themen 6
E Bild abspeichern Allgemeine Java-Themen 5
B Syntax-Highlighting abspeichern Allgemeine Java-Themen 7
R ArrayList byte[] abspeichern Allgemeine Java-Themen 4
I Abspeichern einer txt-Datei Allgemeine Java-Themen 7
L Abspeichern von OutputStream Allgemeine Java-Themen 6
W sql Query abspeichern selber variabele hilfe...? Allgemeine Java-Themen 16
X Anwendungsdaten abspeichern ? Allgemeine Java-Themen 12
T abspeichern und laden von objekten in JFrame Allgemeine Java-Themen 2
simcen X509Certificate abspeichern Allgemeine Java-Themen 2
R PDF einlesen und als Bild abspeichern Allgemeine Java-Themen 8
D readChar; wort abspeichern :( Allgemeine Java-Themen 5
L Wie kann ich eine HashMap abspeichern? Allgemeine Java-Themen 3
M Sound in datei abspeichern Allgemeine Java-Themen 3
N Graphics2D als Bild abspeichern Allgemeine Java-Themen 6
V Wie kann ich ein Bild in einem Zip Archiv abspeichern? Allgemeine Java-Themen 3
J Viel Text mit " im Quellcode abspeichern Allgemeine Java-Themen 7
S Projekt als Jar abspeichern! wie? Allgemeine Java-Themen 6
J Verzeichnis aus meinem JAR auslesen und abspeichern. Allgemeine Java-Themen 2
R Datei einlesen, Strings hinzufügen, abspeichern Allgemeine Java-Themen 4
S Text in eine txt-Datei schreiben und abspeichern! Allgemeine Java-Themen 8
N Graphik abspeichern Allgemeine Java-Themen 4
F Image als GIF oder JPEG abspeichern Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben