Type mit allen anderen types verknüpfen?? [erledigt]

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Kryan

Betreff: Type mit allen anderen types verknüpfen?? [erledigt]

BeitragDo, März 09, 2006 21:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

ich habe folgenden Type:

Code: [AUSKLAPPEN]
Type nation
 Field name$
End Type

wie kriege ich es hin, jede nation mit jeder anderen zu verknüpfen???
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!
  • Zuletzt bearbeitet von Kryan am Fr, März 10, 2006 20:51, insgesamt einmal bearbeitet
 

ke^kx

BeitragDo, März 09, 2006 22:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Was meinst du mit Verknüpfen? Du kannst alle durchgehen mit Code: [AUSKLAPPEN]
For nation.nation = each nation
...
next


Und da die Types sowieso schon in einer Reihenfolges sind, die du auch verändern kannst, weiß ich nicht was das problem ist Confused

Jiriki
http://i3u8.blogspot.com
Asus Striker II
Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-)
Geforce 9800 GTX
2GB RAM

Kryan

BeitragFr, März 10, 2006 19:19
Antworten mit Zitat
Benutzer-Profile anzeigen
ne...es is so, dass ich gerne wissen würde, ob die Nation mit der anderen Nation Krieg führt oder in Frieden lebt....
das würde ich gerne dann in jedem type speichern

ungefähr so:

Type Nation
FIeld status[8]
End Type

in diesem falle, kann jede nation 8 andere nationen verwalten...wie kann ich es aber unabhängiger machen??????
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!
 

ke^kx

BeitragFr, März 10, 2006 19:43
Antworten mit Zitat
Benutzer-Profile anzeigen
So:
Code: [AUSKLAPPEN]

Type Nation
 Field name$
 Field StatusHandle%
 Field count%
end Type

Type status
 Field nation$    ;Handel der befreundet, verfeindete... Nation
 Field status%   ;wie genau verfeindet...
End Type


In StatusHandle speicherst du den Handle des ersten Status type und in Count die Anzahl. Du musst dann halt immer wenn du einen neuen status Type erschafst ihn auch gleich an die richtige Position bringen.

Anders geht es glaub ich auch mit einem Field status.status, ich weiß aber grad nciht wie und bin zu faul zum nachgucken^^

Jiriki
http://i3u8.blogspot.com
Asus Striker II
Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-)
Geforce 9800 GTX
2GB RAM
 

HW

BeitragFr, März 10, 2006 19:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würde das nicht mit Handles speichern, sondern direkt auf den Typeeintrag verweisen. Ist eigentlich einfacher und in diesem Fall auch geeignet.
Ist genau das mit dem status.status etc.
Allerdings ist das immer noch nicht gut, da eine Nation dann nur einen Status haben kann. So einfach ist das natürlich nicht.
 

ke^kx

BeitragFr, März 10, 2006 19:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Deshalb sagte ich ja, was ich ich sagte Wink

Klar, kann man statt das Handels des ersten Types auch direkt auf den Typeeintrag verweisen, ist denke ich Geschmackssache. (Ich finde es mit dem Handel besser, weil man sonst nur umständlich auf die anderen, nachfolgenen Status-Types zugreifen kann. Ja wenn ich es mir recht überlege, geht es garnicht anders als mit dem Handel Smile )

Jiriki

[Edit:]
Am schnellsten ist es aber wie du schon vorgeschlagen hattes, Kryan, mit einem Blitzarray, leg halt entweder ein Blitzarray an, das so groß ist, dass man alle Nationen darin speichern kann oder begrenze die "Verknüpfung" auf zehn oder so.

Da fällt mir gerade ein, dass es wahrscheinlich am besten wäre, in einem Dim Feld einfach die Beziehung aller Nationen untereinander zu speichern (wenn die einer der anderen Feindlich gesonnen ist, ist es ja umgekehr selten anders, außer du möchtest ein komplexes Rpg coden).
http://i3u8.blogspot.com
Asus Striker II
Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-)
Geforce 9800 GTX
2GB RAM
 

HW

BeitragFr, März 10, 2006 19:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Entschuldige bitte, ich habe mir die Funktionsweise deiner Idee nicht ganz genau angeschaut. Embarassed
Dennoch sollte das nicht daran hindern, bessere Methoden zu entwerfen. Auf diese Weise müsste er die Zahl manuell für jede Nation in das Countfield eintragen.
Bei einer dynamischen Zahl an Nationen, die bei einem Einsatz von Types nicht unwahrscheinlich ist, ist das äußerst ungeschickt.

Kryan

BeitragFr, März 10, 2006 20:04
Antworten mit Zitat
Benutzer-Profile anzeigen
dann hab ich aber immer noch das selbe problem Very Happy
...
ich will dass ich in jedem type JEDE andere nation verwalten kann....
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!
 

ke^kx

BeitragFr, März 10, 2006 20:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann mach es halt mit einem Blitzarray in der größe aller Nationnen, ist eigentlich kein Problem. Ist dann auch sicher schneller als irgendwelche Typespielereien, da es ja ein statisches Array ist...

Jiriki
http://i3u8.blogspot.com
Asus Striker II
Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-)
Geforce 9800 GTX
2GB RAM

Kryan

BeitragFr, März 10, 2006 20:51
Antworten mit Zitat
Benutzer-Profile anzeigen
hab nun ne bessere lösung von jemandem bekommen...
trotzdem vielen dank!!!!
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!
 

ke^kx

BeitragFr, März 10, 2006 22:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Kannst du sie auch hier posten, damit wir auch daran Anteil haben können? Ich will auch noch was lernen Wink

Jiriki
http://i3u8.blogspot.com
Asus Striker II
Intel Core2Quad Q9300 @ 2,5 GHz (aber nur zwei Kerne aktiv aufgrund der Instabilität -.-)
Geforce 9800 GTX
2GB RAM

Kryan

BeitragFr, März 10, 2006 22:55
Antworten mit Zitat
Benutzer-Profile anzeigen
nagut...
ich hab n neues Typ verwendet:
Code: [AUSKLAPPEN]
Type diplomatie
 Field n1.nation
 Field n2.nation
 Field status%
End Type


und mit folgenden funktionen hat man zugriff darauf:
Code: [AUSKLAPPEN]
Function NeuerDiplomatischerStatus(n1.Nation,n2.Nation,status=0)
 dip.diplomatie=New diplomatie
 dip\n1.Nation=n1
 dip\n2.Nation=n2
 dip\status=status
End Function
Function SetzeDiplomatischenStatus(n1.Nation,n2.Nation,status)
 dip.Diplomatie=FindeDiplomatie.diplomatie(n1,n2)
 If dip<>Null Then
  dip\status=status
 End If
End Function
Function NehmeDiplomatischenStatus(n1.Nation,n2.Nation)
 dip.Diplomatie=FindeDiplomatie.diplomatie(n1,n2)
 If dip<>Null Then
  Return dip\status
 End If
End Function
Function FindeDiplomatie.diplomatie(n1.Nation,n2.Nation)
 For dip.diplomatie=Each diplomatie
  If (n1=dip\n1 And n2=dip\n2) Or (n1=dip\n2 And n2=dip\n1) Then Return dip
 Next
End Function


sry, dass ich es nich gleich gemacht hab Embarassed
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group