Was ist Falsch an diesem Programmcode?

Hallo habe vor ein paar Tagen ein kleines Spiel in Quick Basic programmiert. Nun aber bekomme ich beim starten des Programms die Fehlermeldung Falsche Anzahl von Dimensionen. Habe bereits in zwei weitetren Foren gefragt und bin trotzdem noch nicht weitergekommen. Habe den Code bereits ergänzt und auch ein paar Fehler gefunden die das Problem allerdings leider nicht gelöst haben. Jetzt seid ihr wahrscheinlich meine letzte Hoffnung das Spiel doch noch zum laufen zu bringen. Für fachkundige kommt jetzt der Code:

DIM SHARED X1(0 TO 35) AS INTEGER DIM SHARED X2(0 TO 35) AS INTEGER DIM SHARED X3(0 TO 35) AS INTEGER DIM SHARED Y1(0 TO 35) AS INTEGER DIM SHARED Y2(0 TO 35) AS INTEGER DIM SHARED Y3(0 TO 35) AS INTEGER

DIM SHARED X AS SINGLE DIM SHARED Y AS SINGLE

DIM SHARED AntriebX(0 TO 35) AS SINGLE DIM SHARED AntriebY(0 TO 35) AS SINGLE

DIM SHARED AsteroidX(1 TO 10) AS INTEGER DIM SHARED AsteroidY(1 TO 10) AS INTEGER DIM SHARED AsteroidXc(1 TO 10) AS INTEGER DIM SHARED AsteriodYc(1 TO 10) AS INTEGER

DIM SHARED Zeit

DIM SHARED Punkte AS INTEGER

DIM SHARED ScheibeX AS INTEGER DIM SHARED ScheibeY AS INTEGER

DECLARE SUB Berechnen () DECLARE SUB Einrichten () DECLARE SUB Malen (X AS SINGLE, Y AS SINGLE, F AS INTEGER, W AS INTEGER) DECLARE SUB Spiel () DECLARE SUB AsteroidBewegen () DECLARE SUB EndedesSpiels ()

SCREEN 7 CLS

FOR g% = 1 TO 10 AsteroidX(g%) = INT(RND * 320) AsteriodY(g%) = INT(RND * 200) AsteriodXc(g%) = INT(RND * 5) - 2 AsteriodYc(g%) = INT(RND * 5) - 2

PSET (AsteroidX(g%, AsteroidY(g%)), 15) NEXT

ScheibeX = INT(RND * 320) ScheibeY = INT(RND * 200) CIRCLE (ScheibeX, ScheibeY), 10, 14 PAINT (ScheibeX, ScheibeY), 14

Zeit = TIMER

CALL Berechnen CALL Spiel

END

SUB AsteroidBewegen

FOR g% = 1 TO 10

PSET (AsteroidX(g%), AsteroidY(g%)), 0

AsteroidX(g%) = AstoroidX(g%) + AsteriodXc(g%) IF AsteroidX(g%) > 320 THEN AsteroidX(g%) = 0 IF AsteroidX(g%) < 0 THEN AsteroidX(g%) = 320

AsteroidY(g%) = AsteroidY(g%) + AsteroidYc(g%) IF AsteroidY(g%) > 200 THEN Asteroid(g%) = 0 IF AsteroidY(g%) < 0 THEN AsteroidY(g%) = 200

PAINT (AsteroidX(g%), AsteroidY(g%)), 15

IF ABS(AsteroidX(g%) - X) < 5 THEN

IF ABS(AsteroidY(g%) - Y) < 5 THEN

 SOUND 700, 1

 Zeit = Zeit - 10

 END IF
 END IF

 NEXT

END SUB

SUB Berechnen ZwoPI# = 8 * ATN(1) ZehnGrad# = ZwoPI# / 36 FOR W% = 0 TO 35 Radiant# = W% * ZehnGrad# Sinusradiant# = SIN(Radiant#) Cosinusradiant# = COS(Radiant#) X1(W%) = 6 * Sinusradiant# X2(W%) = 3 * Cosinusradiant# - 6 * Sinusradiant# X3(W%) = -3 * Cosinusradiant# - 6 * Sinusradiant# Y1(W%) = -6 * Cosinusradiant# Y2(W%) = 3 * Sinusradiant# + 6 * Cosinusradiant# Y3(W%) = -3 * Sinusradiant# + 6 * Cosinusradiant# AntriebX(W%) = Sinusradiant# AntriebY(W%) = Cosinusradiant# NEXT END SUB

SUB EndedesSpiels
COLOR 4
LOCATE 10, 10: PRINT "Die Zeit ist um!"
LOCATE 12, 10: PRINT Punkte; " Punk
...zum Beitrag

Ist leider nicht der komplette Code und leider stimmt der Zeilenabstand auch eventuell nicht. Ging eben hier im Forum nicht anders dennoch sollte alles was  von Belang sein sollte im Text enthalten sein. Alles übrige habe ich sicher schon ausreichent kontrolliert.

...zur Antwort

Danke das wollte ich wissen. Bin vielleicht auch etwas übervorsichtig.

...zur Antwort

Wie gesagt es ist nur bei diesem Spiel. Wenn mir in spätestens ein oder zwei Tagen niemand etwas anderes schreibt müsste ich das Spiel ja bedenkenlos weiterspielen können. Hatte mir jedenfalls schon etwa 1-2 Spiele aus dem Frei Spiele aus dem Internet heruntergeladen die minimal ruckelten und danach liefen viele meiner Spiele nicht mehr richtig. Bei Kaufspielen ist mir sowas bis jetzt noch nie passiert. Mache mir eben nur Sorgen um mein System auch wenn bis jetzt wohl nichts passiert ist. Habe den PC ja erst vor wenigen Tagen wieder hingekriegt. Danke für eure Antworten, auch wenn niemand nähere Erfahrungen mit Wheelman gemacht hat.

...zur Antwort