home *** CD-ROM | disk | FTP | other *** search
File List | 1995-08-15 | 4.3 KB | 210 lines |
- ' nitpick
- ' Programmed by Seymour Shlien 18-Feb-93
- ' 624 Courtenay Avenue
- ' Ottawa, Canada, K2A 3B5
- ' in GFA Basic 3.5 for the Atari 1040
- DIM board&(1000)
- DIM char1%(10),char2%(10)
- DIM deskcolors%(4)
- rez%=XBIOS(4)
- DEFMOUSE 0
- IF rez%=0
- ALERT 3," Please switch to | medium resolution! ",1,"Oops",b%
- STOP
- ENDIF
- @instructions
- @get_deskcolors
- VSETCOLOR 0,0,0,0
- VSETCOLOR 1,15,15,15
- VSETCOLOR 2,15,0,0
- level%=0
- @initialize_char
- @control_menu
- @make_board(char1%(level%),char2%(level%))
- REPEAT
- IF restart%=1
- @make_board(char1%(level%),char2%(level%))
- ENDIF
- @nitpick(char1%(level%),char2%(level%))
- IF nits%=0
- @very_good
- ENDIF
- UNTIL quit%=1
- @restore_deskcolors
- END
- > PROCEDURE make_board(s1%,s2%)
- LOCAL k%,ix%,iy%,i%,j%,r%
- nits%=0
- restart%=0
- IF (level% MOD 2)=1
- blank_threshold%=30
- ELSE
- blank_threshold%=200
- ENDIF
- BOX 48,12,402,156
- FOR k%=0 TO 999
- i%=MOD(k%,50)
- j%=(k% DIV 50)
- ix%=i%*7+50
- iy%=j%*7+20
- r%=RANDOM(100)
- IF r%<2
- TEXT ix%,iy%,CHR$(s1%)
- board&(i%+50*j%)=1
- INC nits%
- ELSE IF r%<blank_threshold%
- TEXT ix%,iy%,CHR$(s2%)
- board&(i%+50*j%)=2
- ELSE
- board&(i%+50*j%)=0
- TEXT ix%,iy%," "
- ENDIF
- NEXT k%
- LOCATE 1,26
- PRINT "Find all the ";CHR$(s1%);"'s";
- RETURN
- > PROCEDURE get_deskcolors
- LOCAL i%
- FOR i%=0 TO 3
- deskcolors%(i%)=XBIOS(7,i%,-1)
- NEXT i%
- RETURN
- > PROCEDURE restore_deskcolors
- LOCAL i%,j%
- FOR i%=0 TO 3
- j%=XBIOS(7,i%,deskcolors%(i%))
- NEXT i%
- RETURN
- > PROCEDURE control_menu
- LOCAL i%
- FOR i%=0 TO 2
- BOX 480,40+i%*20,560,50+i%*20
- SELECT i%
- CASE 0
- TEXT 481,48+i%*20,"level "+STR$(level%)
- CASE 1
- TEXT 481,48+i%*20,"restart"
- CASE 2
- TEXT 481,48+i%*20,"quit"
- ENDSELECT
- NEXT i%
- RETURN
- > PROCEDURE nitpick(s1%,s2%)
- LOCAL i%,j%
- IF MOUSEK<>0
- i%=(MOUSEX-50)/7
- j%=(MOUSEY-14)/7
- LOCATE 1,26
- ' PRINT i%,j%,board&(i%+50*j%);
- IF (i%<50) AND (j%<20) AND (i%>=0) AND (j%>=0)
- IF board&(i%+50*j%)=1
- @sound_effects(CHR$(s1%),i%,j%)
- TEXT i%*7+50,j%*7+20,CHR$(s2%)
- DEC nits%
- PRINT SPACE$(16);
- LOCATE 1,26
- PRINT nits%;" left";
- board&(i%+50*j%)=2
- ENDIF
- ELSE IF MOUSEX>480
- i%=(MOUSEY-40) DIV 20
- ' LOCATE 70,20
- ' PRINT i%
- IF i%=0
- INC level%
- IF level%>9
- level%=0
- ENDIF
- TEXT 481,48+i%*20,"level "+STR$(level%)
- PAUSE 30
- ELSE IF i%=1
- restart%=1
- ELSE IF i%=2
- quit%=1
- ENDIF
- ENDIF
- ENDIF
- RETURN
- > PROCEDURE sound_effects(charact$,col%,row%)
- LOCAL i%
- DEFTEXT 2
- TEXT col%*7+50,row%*7+20,charact$
- DEFTEXT 1
- i%=RANDOM(10)
- SELECT i%
- CASE 0
- WAVE 512*7+8,1,1,2000,20
- SOUND 0,0
- CASE 1
- WAVE 512*15+8,1,1,20000,20
- SOUND 0,0
- CASE 2
- WAVE 512*3+8,1,1,20000,20
- SOUND 0,0
- CASE 3
- WAVE 512*3+8,1,15,2000,30
- SOUND 0,0
- CASE 4
- WAVE 512*3+8,1,8,200,30
- SOUND 0,0
- CASE 5
- WAVE 512*3+8,1,8,50,30
- SOUND 0,0
- CASE 6
- WAVE 256*30+8,1,8,50,30
- SOUND 0,0
- CASE 7
- WAVE 512*3+8,1,1,200,30
- SOUND 0,0
- CASE 8
- SOUND 0,12,1,1,20
- WAVE 1,1,0,50,3
- SOUND 0,0
- CASE 9
- SOUND 1,12,1,2,0
- WAVE 7,7,9,10000,30
- SOUND 0,0
- ENDSELECT
- RETURN
- > PROCEDURE initialize_char
- LOCAL i%
- FOR i%=0 TO 9
- READ char1%(i%),char2%(i%)
- NEXT i%
- DATA 99,101
- DATA 99,101
- DATA 98,100
- DATA 98,100
- DATA 111,101
- DATA 111,101
- DATA 199,200
- DATA 199,200
- DATA 197,213
- DATA 197,213
- RETURN
- > PROCEDURE instructions
- CLS
- PRINT "Using the mouse, click on all the designated characters"
- PRINT "displayed on the screen. If you change levels, please"
- PRINT "click on restart when you are ready. Higher levels are"
- PRINT "more difficult."
- PRINT
- PRINT "Turn up the volume if you wish to hear the sound effects."
- PRINT
- PRINT "The program was written in GFA Basic 3.5 by Seymour Shlien."
- PRINT "The program and its GFA sources may be treated as public"
- PRINT "domain."
- PRINT
- PRINT "...click mouse button when ready."
- REPEAT
- UNTIL MOUSEK<>0
- CLS
- RETURN
- > PROCEDURE very_good
- LOCATE 1,26
- PRINT SPACE$(16);
- LOCATE 1,26
- PRINT "Very good";
- DEC nits%
- RETURN
-