Fragen zu Arrays?

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

 

bruce85

BeitragMi, Jan 21, 2009 14:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke Dir.
Der Kompiler sagt mir, dass das das nur für 1 Dimensionales Array ist, was du schon bereits geschrieben hattest.

Edit: Ich kann ja nicht einfach erst ein 1 Dimensionales Array erstellen und dann Slices benutzen und irgendwie dann daraus ein 2 Dimensionales Array machen, oder?
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250

BladeRunner

Moderator

BeitragMi, Jan 21, 2009 14:56
Antworten mit Zitat
Benutzer-Profile anzeigen
nein, geht nicht Wink
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

bruce85

BeitragMi, Jan 21, 2009 15:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Also mit dem vergößern von Arrays kann ich jetzt vergessen.

Wenn, dann müsste ich die Komplette größe schon am anfang definieren und dann kann ich verschiedene Karten laden, die kleiner sind u.s.w.

Danke trotzdem für die Hilfe.

MfG
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250

BladeRunner

Moderator

BeitragMi, Jan 21, 2009 15:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Doch, das geht.
Warte kurz.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

BladeRunner

Moderator

BeitragMi, Jan 21, 2009 15:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
SuperStrict
Type TTest
   Field blub:Int
   
   Method New()
      blub = Rand(10)
   End Method
End Type

Local array:ttest[2 * 3]
For Local i:Int = 0 Until array.length
   array[i] = New ttest
Next

For Local t:ttest = EachIn array
   Print t.blub
Next
Print " ---------------------------------------------------------"

'vergrössern
array = array[..5 * 5]
'initialisieren der felder
For Local i:Int = 0 Until array.length
   array[i] = New ttest
Next

For Local t:ttest = EachIn array
   Print t.blub
Next


war ein kleiner Fehler meinerseits, beim Initialisieren muss man durch das Array iterieren, nicht durch die Types darin. Ist auch logisch, denn die sind ja alle noch null Wink
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

bruce85

BeitragMi, Jan 21, 2009 15:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke.
Aber wie es aussieht ist das auch nur für Ein Dimensional, ich werde es Später mal testen und vielen Dank.

MfG
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250

Xeres

Moderator

BeitragMi, Jan 21, 2009 15:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier eine 2D Variante...
Mit 1, 2 und 3 durchschalten.

Code: [AUSKLAPPEN]
SuperStrict
AppTitle = "Variables, 2D Array"
Graphics(800, 600)

Type TSpielStein
   Field Wert:Int
   
   Function Create:TSpielstein(fwert:Int)
      Local s:TSpielstein = New TSpielstein
      s.Wert = fwert
      Return s
   End Function
End Type

Global MapArray:TSpielstein[,]
Global FeldX:Int, FeldY:Int

RestoreData Map1
LoadMap()

Repeat
   
   If KeyHit(KEY_1) Then
      RestoreData Map1   
      LoadMap()
   ElseIf KeyHit(KEY_2) Then
      RestoreData Map2
      LoadMap()
   ElseIf KeyHit(KEY_3) Then
      RestoreData Map3
      LoadMap()
   EndIf
   
   DrawMap()
   
   Flip
   Cls
Until KeyHit(KEY_ESCAPE) Or AppTerminate()

Function LoadMap()
   ReadData FeldX, FeldY
   MapArray = New TSpielstein[FeldX, FeldY]
   Local p:Int
   For Local x:Int = 0 Until FeldX
     For Local y:Int = 0 Until FeldY
       ReadData(p)
       MapArray[x, y] = TSpielStein.Create(p)
     Next
   Next
End Function

Function DrawMap()
   For Local x:Int = 0 Until FeldX
     For Local y:Int = 0 Until FeldY
       DrawText(MapArray[x, y].Wert, (x * 15) + 15, (y * 15) + 15)
     Next
   Next   
End Function

#Map1
DefData 3, 3
DefData 0, 1, 0
DefData 1, 2, 1
DefData 0, 1, 0

#Map2
DefData 4, 4
DefData 0, 1, 1, 0
DefData 1, 2, 2, 1
DefData 1, 2, 2, 1
DefData 0, 1, 1, 0

#Map3
DefData 5, 5
DefData 0, 1, 2, 1, 0
DefData 1, 2, 3, 2, 1
DefData 2, 3, 4, 3, 2
DefData 1, 2, 3, 2, 1
DefData 0, 1, 2, 1, 0
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

bruce85

BeitragMi, Jan 21, 2009 17:53
Antworten mit Zitat
Benutzer-Profile anzeigen
@Xeres, vielen Dank.

Nun funktioniert das richtig.

MfG
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group