LinkedList in einer Struktur

Anfängerfragen zum Programmieren mit PureBasic.
teamO
Beiträge: 56
Registriert: 01.03.2010 20:01

LinkedList in einer Struktur

Beitrag 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 :)
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Re: LinkedList in einer Struktur

Beitrag 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()
teamO
Beiträge: 56
Registriert: 01.03.2010 20:01

Re: LinkedList in einer Struktur

Beitrag 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?
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: LinkedList in einer Struktur

Beitrag von STARGÅTE »

JO, denn Lists in Strukturen gehen erst ab 4.50!

Wenn du alos Updaten kannst, solltest du das machen.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
teamO
Beiträge: 56
Registriert: 01.03.2010 20:01

Re: LinkedList in einer Struktur

Beitrag von teamO »

und wenn nicht?
kann man das auch irgendwie anders lösen?
Benutzeravatar
Blackskyliner
Beiträge: 532
Registriert: 28.07.2005 00:54
Wohnort: /home/Blackskyliner/

Re: LinkedList in einer Struktur

Beitrag von Blackskyliner »

4.30? Gibt es das als non-updateable Version? :o
Keine meiner Antworten ist endgültig, es kann passieren, dass ich den so eben geposteten Beitrag noch mehrmals ändere, um Doppelposts zu umgehen.
_________________
Purebasic Windows 7 x64 & Linux (Ubuntu 10.04LTS) 4.50[x64|x86] Nutzer
_________________
Projekte: YAED - Yet another Event Dispatcher
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: LinkedList in einer Struktur

Beitrag 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.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
teamO
Beiträge: 56
Registriert: 01.03.2010 20:01

Re: LinkedList in einer Struktur

Beitrag 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.
c4s
Beiträge: 1235
Registriert: 19.09.2007 22:18

Re: LinkedList in einer Struktur

Beitrag 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.
"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld
Benutzeravatar
PureLust
Beiträge: 1145
Registriert: 21.07.2005 00:02
Computerausstattung: Hab aktuell im Grunde nur noch 'nen Lenovo Yoga 2 Pro im Einsatz.
Wohnort: am schönen Niederrhein

Re: LinkedList in einer Struktur

Beitrag 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.
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
Antworten