Listing of file='CLUMSY.BAS;01' on disk='vmedia/chip_24-sector.ccvf'
20 REM "CLUMSY", A ONE-PLAYER GAME BY W. RUST, MARCH 1979 30 REM 50 REM ---HOUSEKEEPING 52 CLEAR 100 54 DIM D(5),W(5),X(5),Y(5),Z(5) 56 DEF FN A(X)= INT (X* RND (1)) 100 REM ---INSTRUCTIONS 105 PLOT 14,6,3,12,3,24,9 110 PRINT "- CLUMSY -" 115 PLOT 15,6,6,3,16,16 120 PRINT "A ONE-PLAYER GAME BY W. RUST" 125 PLOT 3,64,0:REM BLIND CURSOR 130 FOR Z= 1TO 2000:NEXT Z 135 PLOT 15,6,5,12,3,2,3 140 PRINT "YOU ARE TRYING TO GO THROUGH A ROOM IN THE DARK." 142 PRINT :PLOT 6,3 144 PRINT "THERE ARE FIVE PIECES OF FURNITURE IN THE ROOM" 146 PRINT "AND YOU DO NOT WANT TO STUMBLE INTO THEM. 148 PRINT :PLOT 6,7 150 PRINT "YOUR SPACE-AGE ULTRASONIC CANE MODEL Q-34/J TELLS" 152 PRINT "YOU THE DISTANCES TO THE PIECES OF FURNITURE, BUT" 154 PRINT "NOT THE DIRECTIONS. 156 PRINT :PLOT 6,6 158 PRINT "EACH TIME YOU ARE ASKED TO MOVE, ENTER THE" 160 PRINT "DIRECTION YOU WANT TO TAKE A STEP ( N, E, W, S )." 162 PRINT "DO NOT HIT 'RETURN' EACH TIME." 164 PRINT 166 PRINT "YOU ARE THE RED SQUARE." 168 PRINT :PLOT 6,2 170 PRINT "BE CAREFUL: DON'T LET YOUR DISTANCE BECOME LESS" 172 PRINT "THAN 1 STEP! DON'T BE CLUMSY!" 174 PRINT :PLOT 6,6 176 PRINT "AT THE END OF THE GAME, I WILL TURN ON THE" 178 PRINT "LIGHTS SO YOU CAN SEE HOW WELL YOU DID!" 180 PRINT :PLOT 6,1 182 PRINT "HIT 'RETURN' TO CONTINUE..." 184 PRINT :INPUT Q$ 200 REM ---CHOOSE FURNITURE SIZES & LOCATIONS 210 R= PEEK (33209):FOR J= 1TO R:X= RND (1):NEXT J 215 REM (X,Y)=POS OF UPPER LEFT CORNER 216 REM (W,Z)=POS OF LOWER RIGHT CORNER, OF PIECES 1,2,3,4,5 220 REM CHOOSE WHICH FURNITURE WILL TOUCH TOP (TT) AND 221 REM BOTTOM (TB) BORDERS. 225 T= FN A(8)+ 1:ON TGOTO 231,232,233,234,235,236,237,238,225 231 TT= 1:TB= 2:GOTO 240 232 TT= 1:TB= 3:GOTO 240 233 TT= 1:TB= 5:GOTO 240 234 TT= 3:TB= 2:GOTO 240 235 TT= 3:TB= 5:GOTO 240 236 TT= 4:TB= 2:GOTO 240 237 TT= 4:TB= 3:GOTO 240 238 TT= 4:TB= 5 240 REM CHOOSE FURNITURE SIZES AND LOCATIONS 250 X(1)= FN A(12)+ 1:Y(1)= FN A(4)+ 6:IF TT= 1THEN Y(1)= 4 260 W(1)= X(1)+ 8:Z(1)= Y(1)+ 8 270 X(2)= FN A(12)+ 4:Y(2)= Z(1)+ 3+ FN A(6) 280 W(2)= X(2)+ 5:Z(2)= Y(2)+ 3:IF TB= 2THEN Z(2)= 30 290 X(3)= FN A(6)+ 24:Y(3)= FN A(11)+ 7:IF TT= 3THEN Y(3)= 4 300 W(3)= X(3)+ 10:Z(3)= 27- FN A(8):IF TB= 3THEN Z(3)= 30 310 X(4)= FN A(8)+ 43:Y(4)= FN A(4)+ 6:IF TT= 4THEN Y(4)= 4 320 W(4)= X(4)+ 10:Z(4)= Y(4)+ 8 330 X(5)= FN A(8)+ 43:Y(5)= Z(4)+ 3+ FN A(6) 340 W(5)= X(5)+ 10:Z(5)= Y(5)+ 3:IF TB= 5THEN Z(5)= 30 400 REM ---DRAW ROOM DISPLAY 410 PLOT 15,6,32,12,27,24 420 PLOT 6,6:FOR Y= 0TO 2:PLOT 3,0,Y,11:NEXT Y 430 PLOT 6,48 440 FOR Y= 3TO 10:PLOT 3,63,Y,32:NEXT Y 445 FOR Y= 17TO 31:PLOT 3,63,Y,32:NEXT Y 450 FOR Y= 3TO 25:PLOT 3,0,Y,32:NEXT Y 460 PLOT 3,0,3,11:PLOT 3,0,31,11 480 A$= "DISTANCES ARE:" 490 PLOT 6,3,3,63,12,27,10 500 PRINT "EXIT" 510 PLOT 27,24 590 PX= 0:PY= 28:REM INITIAL PLAYER POSITION 600 REM ---PLOT PRESENT POSITION 610 PLOT 6,8:PLOT 3,PX,PY,32 700 REM ---TEST FOR EXIT 710 IF PX= 62AND PY> 10AND PY< 17GOTO 1200 750 REM ---CALC DISTANCES TO FURNITURE 760 FOR J= 1TO 5 770 DX= 0:IF PX< X(J)THEN DX= X(J)- PX 780 IF PX> W(J)THEN DX= PX- W(J) 790 DY= 0:IF PY< Y(J)THEN DY= Y(J)- PY 800 IF PY> Z(J)THEN DY= PY- Z(J) 810 B= SQR (DX* DX+ DY* DY) 820 D(J)= INT (10* B+ .5)/ 10 950 REM ---TEST FOR STUMBLE 960 IF D(J)< 1GOTO 1200 970 NEXT J 1000 REM ---DISPLAY DISTANCES TO FURNITURE 1005 PLOT 15,6,3,8,11:PRINT A$; 1010 PLOT 6,7 1020 PRINT TAB( 15);D(1);TAB( 22);D(2);TAB( 29);D(3); 1021 PRINT TAB( 36);D(4);TAB( 43);D(5) 1100 REM ---INPUT PLAYER'S MOVE 1110 PLOT 6,3,3,56,0 1120 POKE 33278,0 1130 PRINT "MOVE " 1131 PLOT 3,62,0 1135 Q= PEEK (33278) 1140 Z= RND (1):REM DELAY AND RANDOMIZE 1145 IF Q= 0GOTO 1135 1150 Q$= CHR$ (Q) 1160 IF Q$= "N"THEN PY= PY- 1 1161 IF Q$= "E"THEN PX= PX+ 1 1162 IF Q$= "W"THEN PX= PX- 1 1163 IF Q$= "S"THEN PY= PY+ 1 1170 IF PY< 4THEN PY= 4 1171 IF PY> 30THEN PY= 30 1172 IF PX< 1THEN PX= 1 1173 IF PX> 62THEN PX= 62 1180 PLOT 3,56,0:PRINT " ":REM ERASE MOVE DISPLAY 1190 GOTO 600 1200 REM ---DISPLAY FURNITURE 1210 RESTORE 1220 DATA 24,16,40,48,24 1230 FOR J= 1TO 5 1240 READ C:PLOT 6,C 1250 FOR X= X(J)TO W(J) 1260 FOR Y= Y(J)TO Z(J) 1270 PLOT 3,X,Y:PRINT " " 1280 NEXT Y 1290 NEXT X 1300 NEXT J 1350 REM ---WHAT NEXT 1360 PLOT 6,6,3,3,15 1370 INPUT "DO YOU WANT TO TRY AGAIN (Y/N) ";Q$ 1380 IF Q$= "Y"GOTO 200 1399 PLOT 6,6,12,27,11 1400 END 1500 PLOT 14,27,18,3,15,27,13:LIST :PRINT :POKE 33265,0:END