Schon wieder ein Type-Problem

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

feider

ehemals "Decelion"

Betreff: Schon wieder ein Type-Problem

BeitragSo, Okt 17, 2004 17:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe schon wieder ein Problem mit dims und types.
Code: [AUSKLAPPEN]

Type Land
   Field Soldaten
   Field Plussoldaten
End Type
Dim karte.Land(6, 6) = New Land

Bei mir schreibt er hier nur:
Zitat:
Expecting end-of-line

warum?

ciao
wammerl

simi

BeitragSo, Okt 17, 2004 17:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich denke so sollte es gehen:
Code: [AUSKLAPPEN]

Type Land
   Field Soldaten
   Field Plussoldaten
End Type
Dim karte.Land(6, 6)
for x = 0 to 6
  for y = 0 to 6
    karte(x,y).Land = New Land
  next
next
 

Edlothiol

BeitragSo, Okt 17, 2004 17:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Du kannst einem Array nicht einfach etwas zuweisen...Code: [AUSKLAPPEN]
Dim karte.Land(6,6)
For x = 0 To 6
For y = 0 To 6
  karte(x,y) = New Land
Next
Next

Hubsi

BeitragSo, Okt 17, 2004 17:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Falsch:Code: [AUSKLAPPEN]
Dim karte.Land(6, 6) = New Land
Richtig:Code: [AUSKLAPPEN]
Dim karte.Land(6, 6)

karte(bla,bla)=New Land


Edit: Ganz schön langsam gewesen Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
  • Zuletzt bearbeitet von Hubsi am So, Okt 17, 2004 17:28, insgesamt einmal bearbeitet
 

feider

ehemals "Decelion"

BeitragSo, Okt 17, 2004 17:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für die Hilfe: Es geht!
Danke!
ciao
wammerl
 

feider

ehemals "Decelion"

BeitragSo, Okt 17, 2004 17:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für die Hilfe, aber es geht immer noch nicht.
ciao
wammerl

Hubsi

BeitragSo, Okt 17, 2004 17:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Was denn nun Question
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

feider

ehemals "Decelion"

BeitragSo, Okt 17, 2004 17:36
Antworten mit Zitat
Benutzer-Profile anzeigen
immer noch dasselbe!
Hier kommt mal der ganze code:
Code: [AUSKLAPPEN]
Graphics 800, 600, 32, 2
Kartebild=LoadImage("bilder/Landkarte.png")
Menue=LoadImage("bilder/menuerechts.png")
Type Land
   Field Soldaten
   Field Plussoldaten
End Type

Dim karte(6, 6)
For x = 1 To 6
   For y = 1 To 6
      karte(x,y).Land = New Land
   Next
Next


For I = 1 To 6
   For J = 1 To 6
      Read karte\Soldaten(i, j)
      Read karte\Plussoldaten(i, j)
   Next
Next
Repeat
   For i = 0 To 5
      For j = 0 To 5
         If mausover(i*100, j*100, 100, 100) And MouseHit(1) Then
         Text 620, 50, "Planquadrat"
         If karte\Soldaten(i+1, j+1)=0 Then
         
         EndIf
         EndIf
      Next
   Next
   DrawBlock Kartebild, 0, 0
   DrawBlock Menue, 600, 0
Until KeyHit(1)

Function Mausover(Bildx, Bildy, Breite, Hohe)
   x1=MouseX()
   y1=MouseY()
   If ((x1 >Bildx)And(x1 < Bildx+Breite)) Then
      If ((y1 >Bildy)And(y1 < Bildy+Hohe)) Then
         Return 1
      EndIf
   EndIf
End Function

Data  4, 6, 0, 0, 0, 1, 0, 7, 0, 1,, -5, 5
Data  0, 0, 0, 0, 0, 0, 0, 2, 0, 1,, 0, 0
Data  0, 2, 0, 1, 0, 10, 0, 1, 0, 1,, 0, 1
Data  0, 9, 0, 0, 0, 10, 0, 2, 0, 1,, 0, 0
Data  0, 0, 0, 3, 0, 1, 0, 2, 0, 1,, -0, 0
Data  5, 5, 0, 4, 0, 3, 0, 3, 0, 1,, 0, 2

Hubsi

BeitragSo, Okt 17, 2004 17:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Falsch:Code: [AUSKLAPPEN]
karte\Soldaten(i, j)
Richtig:Code: [AUSKLAPPEN]
karte(i, j)\Soldaten
Und das generell.
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

feider

ehemals "Decelion"

BeitragSo, Okt 17, 2004 17:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke, das war das Prob.
Doch dieses Mistding kanns nicht lassen mich (und somit euch Wink ) zu ärgern. Bei dem Code

Code: [AUSKLAPPEN]
Type Land
   Field Soldaten
   Field Plussoldaten
End Type

Dim karte(6, 6)
For x = 1 To 6
   For y = 1 To 6
      karte.Land(x,y) = New Land
   Next
Next


Schreibt mir dieses -[b]zensiert[/b]- hin
Zitat:
array type mismatch

will mich das ding ärgern?
bin ich zu dumm?

ciao
wammerl

simi

BeitragSo, Okt 17, 2004 17:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

dim karte.land(6,6)
 

hot-bit

Gast

BeitragSo, Okt 17, 2004 17:58
Antworten mit Zitat
Hoi....

LERN MAL MIT DEN BEFEHLEN RICHTIG UMZUGEHEN !

Mann-o-Mann ....

Toni

Hubsi

BeitragSo, Okt 17, 2004 18:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Willst Du uns verarschen? Als hätten wir das nicht ein paar Posts weiter oben schon gehabt:

Dim karte.Land(6, 6)
For x = 1 To 6
For y = 1 To 6
karte(x,y).Land = New Land
Next
Next
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

BladeRunner

Moderator

BeitragSo, Okt 17, 2004 18:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Das zuweisen von Types in ein Array gehört zugegebenermassen zu den "grammatikalisch" Komplexeren Themen in BB. Dass es da Verwirrung und Fehler geben kann ist verständlich.
Dennoch muss ich Hot-Bit recht geben: Was du hier präsentierst sind spätestens seit Simis 2er Erläuterung Geschichten die du mit einem Minimum an Aufwand hättest durch Ausprobieren herausfinden können.
Beschäftige dich das nächste mal bitte selber mit deinem Code bevor du den 35.en "da geht was nit"- Thread aufmachst.
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
 

feider

ehemals "Decelion"

BeitragSo, Okt 17, 2004 18:06
Antworten mit Zitat
Benutzer-Profile anzeigen
@ simi
´...danke, ich hatte Edlothiols Code nur falsch übernommen. sorry

@ Hubsi
´...nein ich will euch nicht verarschen. sorry.
Bei diesem Fehler waren wohl eher ich und meine Augen der Fehler.

@ BladeRunner
´...OK, ich werds mir zu Herzen nehmen.

ciao
wammerl
 

Timo

BeitragSo, Okt 17, 2004 18:17
Antworten mit Zitat
Benutzer-Profile anzeigen
die richtige Syntax kann man sich so recht gut merken:

Dim-Variablen weist man den Typ zu, indem man das zeichen hinter den Namen, aber vor die Klammer setzt

Code: [AUSKLAPPEN]

;Beispiele
Dim Array(5,5)
Dim TextArray$(5,5)
Dim KommazahlenArray#(5,5)


bei den Types ist es genau so. Man deklariert sie an der selben stelle

Code: [AUSKLAPPEN]

Dim Array.myType(5,5)


nur halt, das die Typ-zuweisung nicht durch ein zeichen geschieht, sondern durch nen Punkt und den Namen des Types Smile
 

feider

ehemals "Decelion"

BeitragSo, Okt 17, 2004 18:18
Antworten mit Zitat
Benutzer-Profile anzeigen
guter Merktipp, Timo!
Danke!
 

ZorroZ.ch

BeitragFr, Aug 12, 2005 18:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry, aber irgendwie ging mir das nicht in den Kopf, ich weiss einfach nicht was ich flasch mache. Die Fehlermeldung, welche ich jedoch immer zu Gesicht bekommen will mir folgendes erläutern:

"array type missmtach", was wohl "array type missmatch" heissen sollte.

Hier der Code:

BlitzBasic: [AUSKLAPPEN]
;; Programmeinstellungen werden angegeben
;
Graphics 800, 600, 32, 1
verlassen = 0
;; Level wird gelesen
leveldatei = ReadFile(\"level01.txt\")

Dim Level(20,60,3) ;; Level$(Zeile, Spalte, Wert(1=X, 2=Y, 3=Bild)

For Zeile=1 To 20
gelesenezeile = ReadLine(leveldatei)
For Spalte = 1 To 60
gelesenespalte = Mid$(gelesenezeile,Spalte,1)
d = zeile -1
c = spalte -1
Level(Zeile,Spalte,1) = c*40
Level(Zeile,Spalte,2) = d*30
If gelesenespalte = \"1\" Then Level(Zeile,Spalte,3) = 1
If gelesenespalte = \".\" Then Level(Zeile,Spalte,3) = 0
Next
Next

;; Bilder werden geladen
bild1 = LoadImage(\"kachel.jpg\")


;; Programm wird gestartet
Repeat
;; Tastenanschläge werden regisriert
If KeyDown(203) = 1 Then y = -1 ;; Sprich: Das Blid verschiebt sich nach links
If KeyDown(205) = 1 Then y = +1 ;; Sprich: Das Bild verschiebt sich nach rechts
If KeyDown(1) = 1 Then verlassen = 1
SetBuffer BackBuffer()
Cls
For Zeile= 0 To 19
For Spalte= 0 To 59
If y = -1 Then Level(Zeile,Spalte,1) = Level(Zeile,Spalte,1) -1
If y = +1 Then Level(Zeile,Spalte,1) = Level(Zeile,Spalte,1) +1
If Level$(Zeile,Spalte,3) = 1 Then DrawImage bild1, Level(Zeile,Spalte,1), Level(Zeile,Spalte,2)
DrawImage bild1, I, J
Next
Next
Flip
Delay 10
y = 0
x = 0
Until verlassen = 1


Wenn ich den bisherigen Texten richtig gelfolgt bin muss der Fehler in der Dim Level liege. Aber was genau muss ich ändern. Noch zur Info: Die Daten, die ich in Dim einfüge sind nur Zahlen ohne Nachkommastellen.

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragFr, Aug 12, 2005 18:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Fehler liegt hier!!
BlitzBasic: [AUSKLAPPEN]
Dim Level(20,60,3) ; hier alles integer

If Level$(Zeile,Spalte,3) = 1 ; hier nun alles String oder wie ??
[BB2D | BB3D | BB+]

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group