'=========================================================================== ' Subject: SKIER Date: 09-08-97 (22:00) ' Author: Unknown Author(s) Code: QB, QBasic, PDS ' Origin: Internet Packet: DEMOS.ABC '=========================================================================== DIM skier(1000) DIM flag1(1000) DIM flag2(1000) DIM trad(1000) RANDOMIZE TIMER x = 150 y = 100 upp1 = 180: upp2 = 0 SCREEN 13 LINE (1, 1)-(11, 11), , BF LINE (4, 2)-(4, 10), 1 LINE (8, 2)-(8, 10), 1 CIRCLE (6, 5), 3, 4 PAINT (6, 5), 4 CIRCLE (6, 5), 1, 9 PAINT (6, 5), 9 LINE (2, 2)-(2, 7), 7 LINE (10, 2)-(10, 7), 7 GET (1, 1)-(11, 11), skier CLS LINE (1, 1)-(7, 11), , BF LINE (2, 2)-(2, 10), 7 LINE (6, 2)-(6, 10), 7 LINE (2, 2)-(6, 4), 12, BF GET (1, 1)-(7, 11), flag1 LINE (1, 1)-(7, 11), , BF LINE (2, 2)-(2, 10), 7 LINE (6, 2)-(6, 10), 7 LINE (2, 2)-(6, 4), 9, BF GET (1, 1)-(7, 11), flag2 LINE (1, 1)-(12, 16), , BF LINE (6, 1)-(2, 12), 190 LINE (6, 1)-(10, 12), 190 LINE (2, 12)-(11, 12), 190 PAINT (6, 4), 190 LINE (5, 13)-(7, 15), 8, BF GET (1, 1)-(12, 16), trad CLS PAINT (1, 1), 26 LINE (90 + 2, 6 + 2)-(230 - 2, 193 - 2), 24, B LINE (90 + 1, 6 + 1)-(230 - 1, 193 - 1), 22, B LINE (90, 6)-(230, 193), 20, B LINE (93, 9)-(227, 190), 15, BF 10 IF upp1 < 10 THEN flags = 2: upp1 = 180 LINE (93, 9)-(227, 19), , BF END IF IF upp2 < 10 THEN flags = 1: upp2 = 180 LINE (93, 9)-(227, 19), , BF END IF IF upp3 < 10 THEN tree = 0: upp3 = 175 LINE (93, 9)-(227, 25), , BF END IF raktrad = raktrad + 1 IF raktrad > 1000 THEN tree = 1: raktrad = 0 IF flags = 1 THEN rand1 = INT(RND * 100) + 1: flags = 3 IF flags = 3 THEN upp1 = upp1 - .08: PUT (rand1 + 110, upp1), flag1, PSET IF flags = 2 THEN rand2 = INT(RND * 100) + 1: flags = 4 IF flags = 4 THEN upp2 = upp2 - .08: PUT (rand2 + 110, upp2), flag2, PSET IF tree = 1 THEN tree = 2 IF tree = 2 THEN upp3 = upp3 - .08: PUT (rand3 + 110, upp3), trad, PSET IF tree = 0 THEN rand3 = INT(RND * 100) + 1 IF POINT(x + 10, y + 10) = 190 THEN x = x - 1 y = y - 1 lod = 0 move = 0 END IF IF POINT(x, y) = 190 THEN x = x + 1 y = y - 1 lod = 0 move = 0 END IF IF POINT(x, y) = 24 THEN x = x + 1 y = y + 1 move = 0 lod = 0 END IF IF POINT(x + 10, y + 10) = 24 THEN y = y - 1 x = x - 1 move = 0 lod = 0 END IF PUT (x, y), skier, PSET SELECT CASE INKEY$ CASE CHR$(0) + "H": lod = lod - 1 IF lod < -2 THEN lod = -2 CASE CHR$(0) + "P": lod = lod + 1 IF lod > 2 THEN lod = 2 CASE CHR$(0) + "K": move = move - 1 IF move < -2 THEN move = -2 CASE CHR$(0) + "M": move = move + 1 IF move > 2 THEN move = 2 CASE CHR$(27) END END SELECT IF NOT move = 0 OR NOT lod = 0 THEN GOTO 500 GOTO 10 500 IF move = -1 THEN x = x - .04 IF move = -2 THEN x = x - .06 IF move = 1 THEN x = x + .04 IF move = 2 THEN x = x + .06 IF lod = -1 THEN y = y - .04 IF lod = -2 THEN y = y - .06 IF lod = 1 THEN y = y + .02 IF lod = 2 THEN y = y + .04 GOTO 10