Seite 2 von 3
Verfasst: 01.08.2007 14:12
von Zweihänder
Ich muss "lediglich" den Wert aus Karte(i,j) mit der Position in der Struktur gleichgesetzt bekommen.
Beispiel:
Karte (i,j)=1 ---> nun soll die 1. Variablenposition aus der Struktur gewählt werden.
Karte (i,j)=2 ---> nun soll die 2. Variablenposition aus der Struktur gewählt werden.
usw.
Verfasst: 01.08.2007 14:17
von Zweihänder
Normalerweise haben natürlich Einheiten der jeweiligen Spieler dieselben Werte. Ich wollte das allerdings variabler halten, so dass ein Speerträger des Spieler 1 andere Werte hat als der des Spieler 2. Also haben die Figuren alle verschiedene Werte, so dass das mit einem weiteren Array wohl nicht funzen würde.
Verfasst: 01.08.2007 14:31
von ts-soft
Gehts nicht auch ohne Strukture, mit einem 3 Dimensioalem Array, statt 2?
Code: Alles auswählen
Enumeration 1
#KS_EBENE
#KS_WALD
#KS_HUEGEL
#KS_SUMPF
#KS_BOLLWERK
#DEFENSIVWERT
#KONTROLLZONE
#BEWEGEUNG
EndEnumeration
AnzahlSpieler = 5
Global Dim AW(#PB_Compiler_EnumerationValue, 8, AnzahlSpieler.l)
AW(#KS_EBENE, 1, 2) = ebene3
Verfasst: 01.08.2007 14:35
von Kaeru Gaman
Zweihänder hat geschrieben:Normalerweise haben natürlich Einheiten der jeweiligen Spieler dieselben Werte. Ich wollte das allerdings variabler halten, so dass ein Speerträger des Spieler 1 andere Werte hat als der des Spieler 2. Also haben die Figuren alle verschiedene Werte, so dass das mit einem weiteren Array wohl nicht funzen würde.
das wär aber ja dann trotzdem möglich mit
Kampfstaerke + Verteidigung( Spieler, Einheitentyp, Bodenart )
aber wenn jeder spieler dutzende speerträger haben kann, wäre es einfach platzverschwendung,
jedem einzelnen die standard-verteidigungswerte mitzugeben.
selbst wenn deine einheiten dann ränge haben können (Conscript, Veteran, Elite),
kann man beim array noch ne dimension dazupacken.
Kampfstaerke + Verteidigung( Spieler, Einheitentyp, Rang, Bodenart )
______________________
> Gehts nicht auch ohne Strukture, mit einem 3 Dimensioalem Array, statt 2?
yo, das außerdem.
Verfasst: 01.08.2007 14:35
von Zweihänder
Puh, dann hab ich ein Problem. Zum einen müsste ich meinen gesamten Code umschreiben - zum anderen kenn ich mich als Anfänger überhaupt nicht mit Enumerationen aus...
Verfasst: 01.08.2007 14:38
von Kaeru Gaman
> zum anderen kenn ich mich als Anfänger überhaupt nicht mit Enumerationen aus...
ne das is quatsch.. das hat ts nur verwendet weil ers gewöhnt ist, braucht man dafür nicht unbedingt.
> Zum einen müsste ich meinen gesamten Code umschreiben
das müßtest du sowieso in einem geringeren oder weiteren umfang tun.
also, schau dir die sache mit StructurUnion mal an.
und nochmal, wenn jeder Spieler mehrere einheiten des selben typs haben kann,
die alle die selben verteidigungswerte haben, dann ist es schlicht unfug, sie jeder einheit mitzugeben.
aber wie du willst, nix umschreiben oder vernünftige lösung, deine entscheidung.
Verfasst: 01.08.2007 14:41
von Zweihänder
Nicht, dass das falsch verstanden wird...
Die Werte für einen Einheitentyp von Spieler1 bleibt immer gleich, deswegen die Struktur mit festen Werten.
Allerdings sind die Werte desselben Einheittyps von Spieler2 anders. Dort haben sie dann auch wieder fste Werte. Also haben bspw Speerträger von Spieler 2 alle die gleichen Werte.
Für meinen Code wäre es and dieser Stelle einfacher, wenn ich die Abfrage, wie oben beschrieben realisieren könnte. Ansonsten müsste ich alles umschreiben. Und der Code ist bereits sehr groß...

Verfasst: 01.08.2007 14:43
von Zweihänder
Ok, ich versuchs mal mit Structurunion... Könntest Du die Funktionalität mal kurz im Vergleich mit einer normalen Struktur umschreiben. Das Handbuch, sowie das Hilfsfile hilft mir irgendwie nicht weiter...

Verfasst: 01.08.2007 14:49
von Zweihänder
Die Werte werden ja auch nicht jeder auf der Karte auftauchenden Einheit mitgegeben. Diese werden lediglich in das 2dim-Array mit jeweils dem Strukturinhalt aufbewahrt und abgefragt.
Verfasst: 01.08.2007 14:59
von Kaeru Gaman
Zweihänder hat geschrieben:Die Werte werden ja auch nicht jeder auf der Karte auftauchenden Einheit mitgegeben. Diese werden lediglich in das 2dim-Array mit jeweils dem Strukturinhalt aufbewahrt und abgefragt.
yo, dann mach doch dafür so wie ts vorgeschlagen hat einfach ein 3D-array.
die struct ist absolut linear, also kannst du dafür doch auch einfach ne dritte dimension nehmen statt des stukturierten teils.
die funktionalität von StructureUnion ist einfach, dass du dieselben speicherstellen derselben struktur mit unerschiedlichen namen ansprechen kannst,
in meinem beispiel eben als statisches array oder mit deinen namen.
ob das beispiel allerdings so genau richtig ist, bin ich mir nicht sicher.
ich persönlich würde den einfacheren ansatz von ts mit dem 3D-array vorziehen.