2Dimensionale Arrays
Übersicht
BlitzMax, BlitzMax NG
Beginners-Corner|
|
The_NiciBetreff: 2Dimensionale Arrays |
Antworten mit Zitat |
|---|---|---|
|
Ui, da hat sich einer an BlitzMax gesetzt!
Nun, ich wollt ein 2Dimensionales Array mit Daten aus einer Datei füttern, jedoch sagt mir BlitzMax ich würde es mit zuvielen Daten stopfen. Zitat: Unhandled Exception:Attempt to indes array element beyond array length Der Code: Code: [AUSKLAPPEN] SuperStrict 'Graphics(800,600,32,60) Global map:Int[32,24] Global mapfile:TStream=ReadFile("testmap.dat") Local y:Int Local x:Int For y=0 To 24 For x=0 To 32 map[x,y]=ReadInt(mapfile) Next Next CloseFile mapfile For y=0 To 24 For x=0 To 32 'DrawText(map[x,y],x+3,y+3) Print map[x,y] Next Next WaitKey() End Wohl ein einfaches Anfängermisverständnis, wäre über Hilfe also ziemlich froh. |
||
ChristianK |
Antworten mit Zitat |
|
|---|---|---|
| Arrays in BlitzMax haben 1 Element weniger als in Blitz3D, weil dort anders gezählt wird. Dein Array hat genau die Anzahl an Elementen, die du angibst. Bei 32 geht das Array von 0 bis 31, bei 24 entsprechend von 0 bis 23. | ||
|
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
||
|
|
FOODy |
Antworten mit Zitat |
|---|---|---|
|
Du musst beim For Until verwenden ( Oder die "To-Zahl" um 1 verringern) , da eine indexierung eines Arrays mit 0 beginnt.
Also wenn du "Local i:Int[8]" machst hast du eine "reichweite" von 0 bis _einschließlich_ 7. Gruß, FOODy EDIT: Mist 3ns zu langsam :( |
||
| BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB | ||
|
|
The_Nici |
Antworten mit Zitat |
|---|---|---|
|
Danke an euch beide, klappt jetzt. |
||
|
|
StarGazer |
Antworten mit Zitat |
|---|---|---|
|
Ich löse das immer so daß ich alle Arrays beim erstellen um einen mehr erstelle. Dann gibs später auch keinen Ärger mit den Forschleifen.
Immer For x to x-1 zu tippen kann auch nerven. Code: [AUSKLAPPEN] breite = 10
höhe = 5 Global Map[breite+1,höhe+1] 'dann gibs hier so auch nie Ärger :) For x = 0 to breite For y = 0 to höhe Map[x,y] = Rand(0,255) Next Next |
||
|
|
Suco-XBetreff: .... |
Antworten mit Zitat |
|---|---|---|
|
Zitat: Ich löse das immer so daß ich alle Arrays beim erstellen um einen mehr erstelle. Dann gibs später auch keinen Ärger mit den Forschleifen. Immer For x to x-1 zu tippen kann auch nerven. Schon von Until gehört, das wurde extra dafür eingeführt. Mfg Suco |
||
| Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB | ||
Übersicht
BlitzMax, BlitzMax NG
Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group
