Dynamik in Type->Array-Deklarationen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Penthouse Pauper

Betreff: Dynamik in Type->Array-Deklarationen

BeitragMi, Aug 23, 2006 17:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey Profis,
ich wollt mal fragen, ob ich bei der Deklaration von Blitzarrays in Types immer eine genaue Größe angeben muss? Hintergrund ist, dass ich mit Types so unspezifisch wie möglich umgehen möchte, damit nicht jeder Pups im Programm einen eigenen Type bekommt.
Ich habe eine 'Create'-Funktion für meinen Type und in dieser Funktion erst würde ich mich gerne auf eine Größe festlegen.

Ich hoffe ich hab mich fachgerecht und sauber ausgedrückt. Code ist denk ich an dieser Stelle nicht sinnvoll...

skey-z

BeitragMi, Aug 23, 2006 17:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Dafür sind Types ja da, damit man nicht auf ein "statisches" Array zureifen muss, du kannst so viele Types zur laufzeit anlegen wie du willst, oder bis dein Speicher platzt
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter
 

Penthouse Pauper

BeitragMi, Aug 23, 2006 23:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay, dann hab ich mich doch falsch ausgedrückt.
Ich meinte nicht viele Instanzen eines Types sondern die Größe eines Blitzarrays in einem Type

StepTiger

BeitragDo, Aug 24, 2006 0:19
Antworten mit Zitat
Benutzer-Profile anzeigen
soweit ich weiß sind arrays innerhalb eines types unmöglich.

leider
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
 

Penthouse Pauper

BeitragDo, Aug 24, 2006 0:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Grrr Wink

Type xyz
Field IchBinEinArray[MeineLänge]
End Type

StepTiger

BeitragDo, Aug 24, 2006 0:46
Antworten mit Zitat
Benutzer-Profile anzeigen
OK! ich weiß anscheinend nicht weit *lol*

größe muss dann aber fest sein. ich glaube nicht, dass du die innerhalb eines types ändern kannst.


Aber ich hatte eben schon Unrecht also:
Versuch es doch einfach Smile
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
 

Penthouse Pauper

BeitragDo, Aug 24, 2006 1:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm, also ich hab bisher nix gefunden und ich denke mal die sind statisch.

Irgendwelche Alternativen zu "eigenes Datenobjekt a lá Turbo C (Liste mit head und tail Pointern) oder für jeden Mist Types schreiben?

Dat ärgert mich echt... und außerdem ein krasser Fehler für meine Spieleinstellungen... soll nämlich dat detail runter gehen soll die Anzahl mitschrupfen und ich will keine Liste die länger ist, als ich sie eigentlich brauche... Alternative dazu wäre die Einstellungen in ne .ini oder so und dann dat Spiel mit den neuen Einstellungen laden, was aber überhaupt nicht benutzerfreundlich wäre

Ich glaub ich bin mit meinem Python echt zuuuuu verwöhnt...

aMul

Sieger des Minimalist Compo 01/13

BeitragDo, Aug 24, 2006 2:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Du könntest dir ja ein eigenes System mit Banks schreiben... Obwohl ich das wirklich für sehr kompliziert halte und dann doch lieber fünf verschiedene Types benutze(Was für deine Idee wieder nicht sinnvoll wäre) Wink

Acja, das mit den .ini kannst du dir so weit ich weiß aus dem Kopf schlagen. Der Parameter von Arrays muss eine Konstante sein, kann also nach dem Compilen nicht mehr verändert werden(hoffentlich weiß weit genug Smile).

MfG
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans!
Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver
 

Dreamora

BeitragDo, Aug 24, 2006 7:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Nicht könntest, musst.

Wenn du einen dynamischen Speicherblock in einem Type in BlitzPlus oder Blitz3D willst, ist eine Bank die einzige Lösung. Etwas anderes geht nicht.

So kompliziert ist es übrigens auch nicht, man muss sich nur überlegen wie man die Datensätze strukturiert speichert, danach schreib man sich 2 Funktionen, einen um so einen Datensatz reinzuschreiben, einen um ihn auszulesen. Das ist alles in allem kein Problem und gibt voll dynamische Datengrössen Smile
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Penthouse Pauper

BeitragDo, Aug 24, 2006 12:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm, vielen Dank für die neuen Ideen.
Ich wollte es vermeiden, viel Quellcode zu schreiben, nur um ein Datenmodell zu erstellen... irgendwo muss Perfektion Abstriche machen um wie ich zu werden Wink

Bevor ich Banks benutze würde ich doch eher mein eigenes Datenmodell erstellen...

Ein Type in dem Head und Tail Pointer immer auf den vorherigen Type gleichen 'Typs' zeigen und ein Datenfeld. Dann einfach nur den ersten Knoten speichern und dann kann man sich anhand der Pointer immer weiter an der Kette langhangeln und gelange so zum Ende, wo man dann wieder neue Types anhängen könnte... ist glaube ich das, was man im Informatikstudium u.a. als eine der ersten Sachen lernt, oder?

Ich denke ich werde mein Array einfach auf die höchste vom Benutzer einstellbare Größe bringen und in einer Variable die tatsächliche Größe speichern... Ist denke ich am einfachsten, schluckt allerdings Performance...
 

Dreamora

BeitragDo, Aug 24, 2006 12:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Das wäre eine LinkedList / Verkettete Liste
Ist recht einfach umzusetzen. (und auch die Art wie Types blitz intern verkettet sind, weswegen du überhaupt über alle mit For gehen kannst bzw. insert und before funktionieren und so Smile )
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Penthouse Pauper

BeitragDo, Aug 24, 2006 15:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Na gut Wink habs jetzt mit der Maximalanzahl gelöst...

werd mir bei Gelegenheit mal dein Datenmodell angucken Wink

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group