Seite 1 von 2

LinkedList in einer Struktur

Verfasst: 06.06.2010 21:20
von teamO
Hi,

Eine LL innerhalb einer Struktur geht wenn ich diesen Satz der PB-Hilfe richtig interpretiere nicht:
Statische Arrays werden innerhalb von Strukturen unterstützt.
Genau das bräuchte ich aber. Mein Problem:
Ich will eine Simulation eines Ameisenstaats schreiben. Es sollen beliebig viele Ameisenhügel möglich sein. Die Hügel haben verschiedene Eigenschaften wie zB. Größe und Nahrungsreserven. Deswegen wollte ich die Hügel in eine strukturierte LinkedList eintragen.

Außerdem kann jeder Hügel Ameiseneier beinhalten. Und diese Eier haben wieder eine Eigenschafte nämlich ihr Alter. Nachdem sie ein bestimmtes Alter erreicht haben werden sie zu Arbeitern.

Ich hätte das jetzt so gelöst:

Code: Alles auswählen

structure huegel
...
newList eier.w()
endstructure

newList huegel.huegel()
funktioniert aber wie gesagt nicht.

Ein großes statisches Array würde zwar gehen, aber das wäre halt irgendwie unelegant.
Hat jemand eine bessere Idee?

Danke für eure Antworten :)

Re: LinkedList in einer Struktur

Verfasst: 06.06.2010 21:24
von edel
Innerhalb von Strukturen und Funktionsparametern heisst das nur List, Map oder Array.

Code: Alles auswählen

Structure huegel
  List eier.w()
EndStructure

NewList huegel.huegel()

Re: LinkedList in einer Struktur

Verfasst: 06.06.2010 21:55
von teamO
danke für die schelle Antwort!

Bei mir funktioniert das aber irgendwie nicht. Es kommt ein Compiler-Error:
"A variable in a 'structure' needs a declared type"
Die selbe Fehlermeldung, wie auch bei newList

Ich hab PB 4.30. Kann es daran liegen?

Re: LinkedList in einer Struktur

Verfasst: 06.06.2010 22:05
von STARGÅTE
JO, denn Lists in Strukturen gehen erst ab 4.50!

Wenn du alos Updaten kannst, solltest du das machen.

Re: LinkedList in einer Struktur

Verfasst: 06.06.2010 22:26
von teamO
und wenn nicht?
kann man das auch irgendwie anders lösen?

Re: LinkedList in einer Struktur

Verfasst: 06.06.2010 22:33
von Blackskyliner
4.30? Gibt es das als non-updateable Version? :o

Re: LinkedList in einer Struktur

Verfasst: 06.06.2010 22:35
von STARGÅTE
entweder mit einer eigenen LinkedList (selbst geschrieben oder eine auf dem Boads)
oder mit einem Static-Array welches aber [0] Felder besitzt,
welches du dann in einem eigenen Memory speicherst den du dann dynamisch vergrößerst und somit darauf zugreifen kannst.

Re: LinkedList in einer Struktur

Verfasst: 06.06.2010 23:19
von teamO
ok, Danke. Ich werds versuchen.

@Blackskyliner: never touch a running system...
bis jetzt hatte ich nie Probleme mit der 4.30
und ist die 4.50 nicht noch Beta? (bin allerdings nicht auf dem neuesten Stand...)
Ich werds jedenfalls mal mit ner eigenen LL versuchen. Wenn ich nicht klar komm, kann ich ja immernoch ein update machen. Aber generell ändere ich, solange alles läuft, nur ungern etwas.

Re: LinkedList in einer Struktur

Verfasst: 07.06.2010 01:43
von c4s
teamO hat geschrieben:ok, Danke. Ich werds versuchen.

@Blackskyliner: never touch a running system...
bis jetzt hatte ich nie Probleme mit der 4.30
und ist die 4.50 nicht noch Beta? (bin allerdings nicht auf dem neuesten Stand...)
Ich werds jedenfalls mal mit ner eigenen LL versuchen. Wenn ich nicht klar komm, kann ich ja immernoch ein update machen. Aber generell ändere ich, solange alles läuft, nur ungern etwas.
Jo, auf 4.41 kannste aber trotzdem updaten. "Runt" nämlich genauso gut wie 4.30 und hat einige Verbesserungen und Bug-Fixes. :roll:
Tipp: Installiere doch die neue Beta-Version nebenbei, denn da musst du gar nichts an deiner aktuellen 4.30-Installation löschen bzw. ändern und kannst dir ein gutes Bild von genau dem machen, was du haben willst.

Re: LinkedList in einer Struktur

Verfasst: 07.06.2010 02:12
von PureLust
c4s hat geschrieben:
teamO hat geschrieben:ok, Danke. Ich werds versuchen.

@Blackskyliner: never touch a running system...
bis jetzt hatte ich nie Probleme mit der 4.30
und ist die 4.50 nicht noch Beta? (bin allerdings nicht auf dem neuesten Stand...)
Ich werds jedenfalls mal mit ner eigenen LL versuchen. Wenn ich nicht klar komm, kann ich ja immernoch ein update machen. Aber generell ändere ich, solange alles läuft, nur ungern etwas.
Jo, auf 4.41 kannste aber trotzdem updaten. "Runt" nämlich genauso gut wie 4.30 und hat einige Verbesserungen und Bug-Fixes. :roll:
Tipp: Installiere doch die neue Beta-Version nebenbei, denn da musst du gar nichts an deiner aktuellen 4.30-Installation löschen bzw. ändern und kannst dir ein gutes Bild von genau dem machen, was du haben willst.
Ausserdem kann man mit der neuen 4.5er IDE in den Compileroptions nun den Compiler auswählen, den man benutzen möchte.
Somit kannst Du also ganz einfach für Dein "altes" 4.3er Projekt den gewünschten Compiler V4.3 einstellen und dieses dann halt auch automatisch und für ewige Zeiten damit kompilieren:
PureBasic 4.50 Beta 4 release notes hat geschrieben:IDE Improvements
The ability to select the used compiler in the compiler options allows to easily switch between different versions from the same IDE. It also allows to easily build and debug 32bit and 64bit applications from one IDE. Furthermore, some longer requested options like keyword sensitive indentation and indent guides have been added.