Eine Structur mit 2dimensionalen Array ?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
GreyEnt
Beiträge: 376
Registriert: 20.07.2006 19:41

Eine Structur mit 2dimensionalen Array ?

Beitrag von GreyEnt »

Hallo, sorry ich schon wieder. :)

Kann ich in einer Structure auch 2 dimensionale Array verwenden?

Structure spieler
name.s
resafeld.b(112,112) ;Aufgedecktes Resourcenfeld. Inhalt wie resfeld
sichtfeld.b(112,112) ;Fog of War 0=n.Sichtbar 1=Sichtbar
attackfeld.b(112,112) ;Feld unter Beschuß=? 0=nein 1=ja
EndStructure

danke schonmal.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

nein,
innerhalb von stukturen funktionieren nur eindimensionale arrays.

aber,
du kannst dir macros schreiben, um zweidimensional zuzugreifen.

...mom.. codeprobe folgt...

[edit]
hier:

Code: Alles auswählen

Structure Player
  Name.s
  View.b[112*112]
EndStructure

Macro Matrix112( x, y )
  ( y * 112 + x )
EndMacro

Define Honk.Player

Honk\View[Matrix112(13,64)] = 37

Debug Honk\View[Matrix112(13,64)]

Debug Honk\View[7181]
PS:
Anmerkung:
es wäre praktischer, das array außerhalb zu speichern, da es bestimmt für mehrere objekte gelten soll,
und im objekt selber nur eine referenz auf das array zu speichern.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
GreyEnt
Beiträge: 376
Registriert: 20.07.2006 19:41

Beitrag von GreyEnt »

ah.

ich glaube ich verstehe.
Ich generiere ein "Perlenketten" Array von der Größe 112*112 (Spielfeld)
Und dann erschaffe ich ein Tool welches mir die Koordinaten"13,64" in die Kette eingliedert.
7181 ist quasi die Adresse von "64"*112 + "13"

toll. 8)

Und wie bekomme ich es nun dauerhaft in mein Schädel?
Ich will den Code ja noch in 5 Jahren lesen können. :(
Benutzeravatar
GreyEnt
Beiträge: 376
Registriert: 20.07.2006 19:41

Beitrag von GreyEnt »

wie meinst Du deine Anmerkung?
Das Array auserhalb zu speichern?
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

also, ein array "sichtfeld112", dass die einzelnen felder speichert.

und in deiner einheit nur ein element "sichtfeld" was ne "112" enthält...

das 112*112-array brauchen mehrere einheiten, also speicher es nur einmal.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
GreyEnt
Beiträge: 376
Registriert: 20.07.2006 19:41

Beitrag von GreyEnt »

  • also, ein array "sichtfeld112", dass die einzelnen felder speichert.

    und in deiner einheit nur ein element "sichtfeld" was ne "112" enthält...

    das 112*112-array brauchen mehrere einheiten, also speicher es nur einmal.
meine Idee war das die Spieler natürlich unterschiedliche Felder überblicken. demzufolge jeder Spieler sein Array bekommt. wo die aufgeklärten felder stehen.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

wenn jeder spieler nur eine einzige einheit auf dem spielfeld hat, ist das ok.

...du hast ja nix über den rahmen des ganzen gesagt
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten