| $ | Text (Zeichenfolge) |
| ! | Kommazahl-Kurz |
| # | Kommazahl-Lang |
| % | Ganzzahl-Normal |
| & | Ganzahl-Lang |
Variablen die ohne Endung notiert werden, werden automatisch zu Zahlen
Beispiel 1:
10 PRINT "Hallo"
GOTO 10
Beispiel 2:
Start:
PRINT "Hallo"
GOTO Start
Beispiel:
x = 50
PRINT "Wert von X: "; x; "."
Ausgabe:
Wert von X: 50.
Beispiel:
INPUT A
INPUT B
IF A > B THEN
PRINT "A ist größer als B"
END IF
Beispiel:
PRINT "Zufallszahl zwischen 1 und 50: "; INT(RND*50)
PRINT "Zufallszahl zwischen 0 und 1: "; RND
Nach der initialisierung des Grafik-Screens kann man mit folgenden Befehken auf ihn zugreifen und zeichnen:
Dieses Programm ist im vergleich zum unteren recht sauber gestaltet. Es enthält ausreichent Kommentare und Befehle die anderen Befehlen unterstellt sind werden eingerückt.
5 a = 1: b = 1: aa = 1: bb = 1: aaa = 1: bbb = 1 10 SCREEN 12 20 CLS 30 x = INT(RND * 640) 40 y = INT(RND * 480) 50 xx = INT(RND * 640) 60 yy = INT(RND * 480) 70 xxx = INT(RND * 640) 80 yyy = INT(RND * 480) 90 LINE (x, y)-(xx, yy), 1 100 LINE (xx, yy)-(xxx, yyy), 4 110 LINE (xxx, yyy)-(x, y), 10 120 x = x + a: y = y + b 130 xx = xx + aa: yy = yy + bb 140 xxx = xxx + aaa: yyy = yyy + bbb 150 IF x >= 640 THEN a = INT(RND * 5) - 5 160 IF y >= 480 THEN b = INT(RND * 5) - 5 170 IF xx >= 640 THEN aa = INT(RND * 5) - 5 180 IF yy >= 480 THEN bb = INT(RND * 5) - 5 190 IF xxx >= 480 THEN aaa = INT(RND * 5) - 5 200 IF yyy >= 480 THEN bbb = INT(RND * 5) - 5 210 IF x <= 0 THEN a = INT(RND * 5) 220 IF y <= 0 THEN b = INT(RND * 5) 230 IF xx <= 0 THEN aa = INT(RND * 5) 240 IF yy <= 0 THEN bb = INT(RND * 5) 250 IF xxx <= 0 THEN aaa = INT(RND * 5) 260 IF yyy <= 0 THEN bbb = INT(RND * 5) 270 z = z + 1: IF z = 15 THEN CLS : z = 0: REM (z ist der "Verwisch Effekt") 280 GOTO 90Dieser Quell-Code ist nicht sehr sauber und sollte zur Übung etwas übersichtlicher gestaltent werden.
DECLARE SUB ShowScore (p1 AS INTEGER, p2 AS INTEGER)
DECLARE SUB Explo (ex AS INTEGER, ey AS INTEGER, Player AS INTEGER)
DECLARE SUB SetScr ()
DECLARE SUB Pause ()
COMMON x AS INTEGER
COMMON y AS INTEGER
COMMON x1 AS INTEGER
COMMON y1 AS INTEGER
COMMON m AS INTEGER
COMMON n AS INTEGER
COMMON m1 AS INTEGER
COMMON n1 AS INTEGER
COMMON SHARED a AS STRING
COMMON r AS INTEGER
COMMON p AS INTEGER
COMMON p1 AS INTEGER
COMMON Time AS SINGLE
CONST g = 20
CONST maxX = 639 - g
CONST maxY = 479 - g
CONST minX = 0 + g
CONST minY = 16 + g
CONST Farbe1 = 2
CONST Farbe2 = 1
CONST StartX = 300
CONST StartY = 240
CONST StartX1 = 340
CONST StartY1 = 240
CONST StartM = 0
CONST StartM1 = 0
CONST StartN = 1
CONST StartN1 = -1
CONST StartTime = 300
SCREEN 12
SetScr
CALL ShowScore(p, p1)
Time = StartTime
x = StartX
y = StartY
x1 = StartX1
y1 = StartY1
n = StartN
n1 = StartN1
Pause
DO UNTIL a$ = "q"
a$ = INKEY$
FOR za = 1 TO Time: NEXT za
Time = Time - .01
x = x + m
y = y + n
x1 = x1 + m1
y1 = y1 + n1
IF POINT(x, y) = Farbe2 OR POINT(x, y) = Farbe1 THEN
p = p + 1
CALL Explo(x, y, 1)
x = StartX
y = StartY
x1 = StartX1
y1 = StartY1
m = StartM
n = StartN
m1 = StartM1
n1 = StartN1
Time = StartTime
Pause
CLS
SetScr
CALL ShowScore(p, p1)
END IF
IF POINT(x1, y1) = Farbe2 OR POINT(x1, y1) = Farbe1 THEN
p1 = p1 + 1
CALL Explo(x1, y1, 2)
Pause
SetScr
CALL ShowScore(p, p1)
x = StartX
y = StartY
x1 = StartX1
y1 = StartY1
m = StartM
n = StartN
m1 = StartM1
n1 = StartN1
Time = StartTime
END IF
PSET (x, y), Farbe1
PSET (x1, y1), Farbe2
SELECT CASE a$
'Player 1
CASE "w"'(CHR$(0) + "H")' oben
IF n <> 1 THEN n = -1: m = 0
CASE "s"'(CHR$(0) + "P") 'unten
IF n <> -1 THEN n = 1: m = 0
CASE "d"'(CHR$(0) + "M") 'rechts
IF m <> -1 THEN n = 0: m = 1
CASE "a"'(CHR$(0) + "K") 'links
IF m <> 1 THEN n = 0: m = -1
CASE ("y")
SELECT CASE m
CASE 1 'rechts
m = 0
n = -1
CASE -1 'links
m = 0
n = 1
CASE 0
SELECT CASE n 'oben
CASE -1
m = -1
n = 0
CASE 1 'unten
m = 1
n = 0
END SELECT
END SELECT
CASE ("x")
SELECT CASE m
CASE 1 'rechts
m = 0
n = 1
CASE -1 'links
m = 0
n = -1
CASE 0
SELECT CASE n 'oben
CASE -1
m = 1
n = 0
CASE 1 'unten
m = -1
n = 0
END SELECT
END SELECT
'Player 2
CASE ("8") 'oben
IF n1 <> 1 THEN n1 = -1: m1 = 0
CASE ("5") 'unten
IF n1 <> -1 THEN n1 = 1: m1 = 0
CASE ("6") 'rechts
IF m1 <> -1 THEN n1 = 0: m1 = 1
CASE ("4")'links
IF m1 <> 1 THEN n1 = 0: m1 = -1
CASE ("1")
SELECT CASE m1
CASE 1 'rechts
m1 = 0
n1 = -1
CASE -1 'links
m1 = 0
n1 = 1
CASE 0
SELECT CASE n1 'oben
CASE -1
m1 = -1
n1 = 0
CASE 1 'unten
m1 = 1
n1 = 0
END SELECT
END SELECT
CASE ("2")
SELECT CASE m1
CASE 1 'rechts
m1 = 0
n1 = 1
CASE -1 'links
m1 = 0
n1 = -1
CASE 0
SELECT CASE n1 'oben
CASE -1
m1 = 1
n1 = 0
CASE 1 'unten
m1 = -1
n1 = 0
END SELECT
END SELECT
CASE ("c")
p = 0: p1 = 0:
Pause
SetScr
CALL ShowScore(p, p1)
x = StartX
y = StartY
x1 = StartX1
y1 = StartY1
m = StartM
n = StartN
m1 = StartM1
n1 = StartN1
Time = StartTime
END SELECT
LOOP
SUB Explo (ex AS INTEGER, ey AS INTEGER, Player AS INTEGER)
SELECT CASE Player
CASE 1
FOR r = 1 TO 40 STEP 1
CIRCLE (ex, ey), r, 2
CIRCLE (ex, ey), r / 2, 10
FOR za = 1 TO 10: NEXT za
NEXT r
CASE 2
FOR r = 1 TO 40 STEP 1
CIRCLE (ex, ey), r, 1
CIRCLE (ex, ey), r / 2, 9
FOR za = 1 TO 10: NEXT za
NEXT r
END SELECT
FOR r = 0 TO 40 STEP 1
CIRCLE (ex, ey), r, 0
FOR za = 1 TO 100: NEXT za
NEXT r
END SUB
SUB Pause
DO UNTIL (a$ = CHR$(13) OR a$ = "q" OR a$ = " ")
a$ = INKEY$
LOOP
END SUB
SUB SetScr
CLS
LINE (minX, minY)-(maxX, minY), 2
LINE (maxX, minY)-(maxX, maxY), 2
LINE (minX, minY)-(minX, maxY), 1
LINE (minX, maxY)-(maxX, maxY), 1
END SUB
SUB ShowScore (p1 AS INTEGER, p2 AS INTEGER)
COLOR 7: LOCATE 1, 1: PRINT "Punkte ->",
COLOR Farbe1: PRINT "Player 1:"; p2,
COLOR Farbe2: PRINT " Player 2:"; p1
END SUB
© Ingo Ruhnke, 9.10.1997
zurück zu Programming Stuff
Last updated on Februar 13, 1998
created by Ingo Ruhnke