Classic Computer Magazine Archive PROGRAM LISTING: 84-01/ODDMAN3.LST


5 REM ���Ӡ�����͠���̠��Ԡ��Π�Π�����ή��ԧӠ��Ԡ�Ơ�����ҭ��Ԡ�����Ӡ�����Ġ�����Χ��Π��֮����ՠ��®�����
10 REM ****************************
20 REM *                          *
30 REM *       ODD MAN OUT        *
40 REM *            BY            *
50 REM *  JOHN AND MARY HARRISON  *
60 REM *                          *
70 REM *            FOR           *
80 REM *      ANTIC MAGAZINE      *
90 REM *                          *
95 REM ****************************
140 DIM ANM$(104),NAME$(20),PMPY$(48),FRAME$(12),ERASE$(12),DISP$(20)
180 AF=77
320 FRAMES=4:FRMSZE=10:POKE AF,0
560 FOR I=1 TO 104:READ X:ANM$(I,I)=CHR$(X):NEXT I
880 GRAPHICS 17:SETCOLOR 4,2,8:SETCOLOR 0,0,14
900 ? #6:? #6;"EVERYDAY OBJECTS":? #6
920 ? #6;"SIMPLE SHAPES":? #6
940 ? #6;"E AND [":? #6
960 ? #6;"CAPITAL LETTERS":? #6
980 ? #6;"SMALL LETTERS":? #6
1000 ? #6;"DIGITS":? #6
1020 ? #6;"THREE DIGITS":? #6
1040 ? #6;"EXIT"
1060 POSITION 18,1:? #6;"<"
1080 CHOICE=1
1100 POKE AF,0:JOY=STICK(0):POS=0
1120 POS=(JOY=9 OR JOY=13 OR JOY=5)+2*(JOY=10 OR JOY=14 OR JOY=6)+1
1140 ON POS GOTO 1300,1160,1220
1160 POSITION 18,CHOICE*2-1:? #6;" "
1180 CHOICE=(CHOICE=8)*1+(CHOICE<8)*(CHOICE+1)
1200 POSITION 18,CHOICE*2-1:? #6;"<":SETCOLOR 4,CHOICE*2,8:GOTO 1280
1220 POSITION 18,CHOICE*2-1:? #6;" "
1240 CHOICE=(CHOICE=1)*8+(CHOICE>1)*(CHOICE-1)
1260 POSITION 18,CHOICE*2-1:? #6;"<":SETCOLOR 4,CHOICE*2,8
1280 FOR DEL=1 TO 100:NEXT DEL
1300 IF STRIG(0)<>0 THEN 1100
1320 RAM$=ROM$:RAM$(25,128)=ANM$(1,104)
1340 RAM$(473,488)=BOX$
1380 PMPY$="#$%&'()*%+,-"
1400 PMPY$(21)="#$%&'(#./+,-"
1420 ERASE$="   "
1440 ON CHOICE GOTO 1480,1500,1520,1960,1940,2240,2240,4140
1500 RAM$(145,208)=GEO$(1,64):RAM$(257,448)=GEO$(65,256):GOTO 1540
1520 RAM$(145,208)=E$(1,64):RAM$(257,448)=E$(65,256)
1640 WRONG=0
1660 FOR LOOP=1 TO 10
1680 SAME=INT(8*RND(0))
1700 DIFF=INT(8*RND(0)):IF DIFF=SAME THEN 1700
1720 ODD=INT(4*RND(0))
1740 FOR I=0 TO 3:P=(I=ODD)*DIFF+(I<>ODD)*SAME
1760 P=INDEX(P)+32
1780 POSITION I*4+3,5:? #6;CHR$(P);CHR$(P+1)
1800 POSITION I*4+3,6:? #6;CHR$(P+2);CHR$(P+3):POSITION I*4+3,8:? #6;"[":NEXT I
1820 GOSUB 2500:REM JUMP TO INPUT ROUTINE
1840 NEXT LOOP
1860 GOTO 3100
1880 REM SET UP FOR LEVELS IV, V
1940 RAM$(265,472)=RAM$(777,984)
1960 GRAPHICS 2:POKE 756,GRTOP
1980 FOR I=0 TO 3:SETCOLOR I,0,14:NEXT I:SETCOLOR 4,CHOICE*2,8
2000 SETCOLOR 2,CHOICE*2,8
2020 REM POKE 16,112:POKE 53774,112
2040 WRONG=0
2060 FOR LOOP=1 TO 10:SAME=INT(26*RND(0))
2080 DIFF=INT(26*RND(0)):IF SAME=DIFF THEN 2080
2100 ODD=INT(4*RND(0))
2120 FOR I=0 TO 3:P=(I=ODD)*DIFF+(I<>ODD)*SAME+65
2140 POSITION I*4+3,6:? #6;CHR$(P):POSITION I*4+3,8:? #6;"[":NEXT I
2160 GOSUB 2500:REM JUMP TO INPUT ROUTINE
2180 NEXT LOOP
2200 GOTO 3100
2220 REM SET UP FOR LEVELS VI, VII
2240 GRAPHICS 2:POKE 756,GRTOP:GOTO 2260
2260 FOR I=0 TO 3:SETCOLOR I,0,14:NEXT I:SETCOLOR 4,CHOICE*2,8
2280 SETCOLOR 2,CHOICE*2,8
2300 REM POKE 16,112:POKE 53774,112
2320 WRONG=0:M=10:N=0:IF CHOICE=7 THEN M=900:N=100
2340 FOR LOOP=1 TO 10:SAME=INT(M*RND(0))+N
2360 DIFF=INT(M*RND(0))+N:IF SAME=DIFF THEN 2360
2380 ODD=INT(4*RND(0))
2400 FOR I=0 TO 3:P=(I=ODD)*DIFF+(I<>ODD)*SAME
2420 POSITION I*4+3,6:? #6;P:POSITION I*4+3+(CHOICE=7),8:? #6;"[":NEXT I
2440 GOSUB 2500:REM JUMP TO INPUT ROUTINE
2460 NEXT LOOP
2480 GOTO 3100
2500 REM JOYSTICK MOVE AND INPUT ROUTINE
2520 POKE 752,1:FLAG=0
2540 POS=3:POKE 656,0:POKE 657,POS+1
2560 ? PMPY$(1,10)
2580 JOY=STICK(0):POKE AF,0
2600 IF JOY>7 THEN 2660:REM JOYSTICK RIGHT ROUTINE
2620 POS=POS+1:IF POS>34 THEN ? "}":POS=3
2640 GOTO 2700
2660 IF JOY>11 THEN 2800:REM JOYSTICK LEFT ROUTINE
2680 POS=POS-1:IF POS<4 THEN ? "}":POS=34
2700 FOR I=1 TO FRAMES:FRAME$=PMPY$(I*FRMSZE-(FRMSZE-1),I*FRMSZE)
2720 POKE 656,2:POKE 657,POS:? ERASE$;FRAME$;ERASE$;
2740 IF I/2<>INT(I/2) THEN SOUND 1,4,0,14
2760 IF I/2=INT(I/2) THEN SOUND 1,4,16,14
2780 SOUND 1,0,0,0:NEXT I
2800 IF STRIG(0)=1 THEN 2580
2820 RE=(POS-5-(CHOICE=7)*2)/8:LE=(POS-4-(CHOICE=7)*2)/8
2840 IF RE<>INT(RE) AND LE<>INT(LE) THEN 2580
2860 RETURN 
4180 DATA 0,8,24,124,252,255,31,31
4200 DATA 0,0,0,0,0,129,255,255
4220 DATA 0,16,24,62,63,255,248,248
4240 DATA 31,15,7,3,3,3,3,3
4260 DATA 255,255,129,0,0,0,0,0
4280 DATA 248,240,224,192,192,192,192,192
4300 DATA 8,60,124,252,28,28,31,31
4320 DATA 0,0,0,0,0,0,255,255
4340 DATA 31,15,7,7,13,24,48,48
4360 DATA 255,255,129,0,129,195,102,102
4380 DATA 248,240,224,224,176,24,12,12
4400 DATA 0,0,0,0,0,128,255,255
4420 DATA 16,60,62,63,56,56,248,248

Back to previous page