home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / 451-475 / apd471 / nomis.amos / nomis.amosSourceCode
AMOS Source Code  |  1993-03-03  |  7KB  |  423 lines

  1. Screen Open 1,320,256,16,Lowres
  2.   Curs Off : Flash Off 
  3.   Paper 0
  4.   Cls 
  5. Screen Open 0,320,256,16,Lowres
  6.   Curs Off : Flash Off 
  7.   Get Sprite Palette 
  8.   Paper 0
  9.   Cls 
  10.   Limit Mouse 135,50 To 440,290
  11.   Dim CM(100),HIGH(7),HIGHNAME$(7)
  12.   Global RNTHR,SCORE1,SCORE2
  13.   Global CM(),HIGH(),HIGHNAME$()
  14.   Global NAME1$,NAME2$
  15.   Global P,G,TMS,TMR,GESS,A,HGH,NX1
  16.   RNTHR=1
  17.   Dir$="catcher-two:"
  18. Proc _INITHIGHSCORES
  19. Proc _SETUP
  20.   Load "npics/title.abk",6
  21.   Load "samples/samples.abk",5
  22.   Music 1
  23.   Unpack 6 To 1
  24.   Screen Hide 1
  25.   Screen 0 : Double Buffer 
  26.   Erase 6
  27. Proc _EXPAND
  28.   Repeat : Until Mouse Key
  29.   RNTHR=1
  30. MAIN:
  31. Do 
  32.   If RNTHR=1 Then Proc _NAMES
  33.   If RNTHR=2 Then Proc _GAMESTART
  34.   If RNTHR=3 Then Proc _HIGHSCORES
  35.   If RNTHR=4 Then Proc _FINISH
  36. Loop 
  37. Procedure _GAMESTART
  38.   Proc _MIXUP
  39.   Unpack 8 To 1
  40.   Screen Hide 1
  41.   Ink 0,9
  42.   Text 15,90,NAME1$
  43.   Text 15,142,Str$(SCORE1)
  44.   Ink 2,9
  45.   Text 232,90,NAME2$
  46.   Text 232,142,Str$(SCORE2)
  47.   Ink 4,9
  48.   Text 78,235,HIGHNAME$(1)
  49.   HGH=HIGH(1)
  50.   Text 239,235,Str$(HGH)
  51.   Screen 0
  52.   Proc _EXPAND
  53.   Music Off 
  54.   Clear Key 
  55.   Bob 3,135,89,8
  56.   While Inkey$="" : Wend 
  57.   Bob Off 3
  58.   Wait 20
  59.   TMS=1 : P=1 : TMR=30
  60.   Bob 2,160,40,7
  61. Repeat 
  62.   Proc _MACHINE
  63.   Proc _YOURGO
  64.   Proc _NEXT
  65. Until RNTHR=3
  66.   If GESS=100 Then RNTHR=4
  67.   NX=0 : NX1=0
  68. End Proc
  69. Procedure _MACHINE
  70.   Ink 4,9
  71.   Text 127,186,"COMPUTER"
  72.   Wait 30
  73.   For F=0 To TMS
  74.     If CM(F)=1
  75.       Bob 1,135,62,1 : Bell 70
  76.     Else If CM(F)=2
  77.       Bob 1,209,87,2 : Bell 50
  78.     Else If CM(F)=3
  79.       Bob 1,136,160,3 : Bell 30
  80.     Else If CM(F)=4
  81.       Bob 1,110,87,4 : Bell 10
  82.       End If 
  83.     End If 
  84.   End If 
  85. End If 
  86.   Wait TMR
  87.   Next F
  88.   Bob 1,135,62,5
  89. End Proc
  90. Procedure _YOURGO
  91.   Cls 9,119,175 To 201,191
  92.   If P=1
  93.     Ink 0 : Text 127,186,NAME1$
  94.   Else If P=2
  95.     Ink 2 : Text 127,186,NAME2$
  96.   End If 
  97. End If 
  98. Wait 30
  99.   GESS=0
  100. YRGO2:
  101.   Q=0
  102. Repeat 
  103.   If Key State(76)=True
  104.     Bob 1,135,62,1 : Bell 70 : G=1 : Q=1
  105.   Else If Key State(78)=True
  106.     Bob 1,209,87,2 : Bell 50 : G=2 : Q=1
  107.   Else If Key State(77)=True
  108.     Bob 1,136,160,3 : Bell 30 : G=3 : Q=1
  109.   Else If Key State(79)=True
  110.     Bob 1,110,87,4 : Bell 10 : G=4 : Q=1
  111.       End If 
  112.     End If 
  113.   End If 
  114. End If 
  115. Until Q=1
  116.   Wait 10
  117.   If G<>CM(GESS) Then Proc _THEEND : Pop Proc
  118.   If P=1 and G=CM(GESS)
  119.     Add SCORE1,G
  120.     Ink 0 : Text 15,142,Str$(SCORE1)
  121.   Else If P=2 and G=CM(GESS)
  122.     Add SCORE2,G
  123.     Ink 2 : Text 232,142,Str$(SCORE2)
  124.   End If 
  125. End If 
  126.   If SCORE1>HGH and NX1=0
  127.      Cls 9,71,223 To 153,239
  128.      Ink 0,9
  129.      Text 78,235,NAME1$
  130.      NX1=1
  131.    Else If SCORE2>HGH and SCORE2>SCORE1 and NX1=1
  132.      Cls 9,71,223 To 153,239
  133.      Ink 2,9
  134.      Text 78,235,NAME2$
  135.      NX1=2
  136.   End If 
  137. End If 
  138.   If SCORE1>HGH and SCORE1>SCORE2
  139.      Ink 0,9
  140.      Text 239,235,Str$(SCORE1)
  141.    Else If SCORE2>HGH and SCORE2>SCORE1
  142.      Ink 2,9
  143.      Text 239,235,Str$(SCORE2)
  144.   End If 
  145. End If 
  146.   Wait 10 : Clear Key 
  147.   Inc GESS
  148.   If GESS=100 Then RNTHR=3 : Pop Proc
  149.   If GESS=TMS+1 Then Bob Off 1 : Pop Proc
  150.   Goto YRGO2
  151. End Proc
  152. Procedure _NEXT
  153.   Inc TMS
  154.   Bob Off 1
  155.   If TMS=10 Then TMR=20
  156.   If TMS=20 Then TMR=15
  157. End Proc
  158. Procedure _THEEND
  159.   Wait 20
  160.   Sam Play 15,1,9500 : Wait 50
  161.   Bob Off 1
  162.   Clear Key 
  163.   If P=1
  164.     Bob 3,135,89,8
  165.     While Inkey$="" : Wend 
  166.     Bob 2,160,40,Hrev(7)
  167.     P=2 : TMS=0 : TMR=30
  168.     Proc _MIXUP
  169.     Bob Off 3
  170.     NX1=1
  171.   Else If P=2
  172.     Bob 3,135,89,8
  173.     While Inkey$="" : Wend 
  174.     Bob Off 
  175.     RNTHR=3
  176.     Gr Writing 0
  177.     Ink 2
  178.     Text 120,40,"MOVING ON"
  179.   End If 
  180. End If 
  181.   Clear Key 
  182.   Wait 30
  183. End Proc
  184. Procedure _HIGHSCORES
  185.   Music 1
  186.   Clear Key 
  187.   A=1
  188. Repeat 
  189.   If SCORE1>HIGH(A)
  190.     Proc _HIGHADD
  191.     A=99
  192.   End If 
  193.   Inc A
  194. Until A>=8
  195.   A=1
  196. Repeat 
  197.   If SCORE2>HIGH(A)
  198.     Proc _HIGHADD2
  199.     A=99
  200.   End If 
  201.   Inc A
  202. Until A>=8
  203.   Unpack 9 To 1
  204.   Screen Hide 1
  205.   Screen 1
  206.   LFT=7
  207.   Paper 9
  208.   For A=1 To 7
  209.     Pen A
  210.     Locate 3,LFT : Print A
  211.     Locate 13,LFT : Print HIGHNAME$(A)
  212.     Locate 29,LFT : Print HIGH(A)
  213.     Inc LFT : Inc LFT
  214.   Next A
  215.   Screen 0
  216.   Proc _EXPAND
  217.   Reserve Zone 2
  218.   Set Zone 1,10,209 To 158,238
  219.   Set Zone 2,162,209 To 310,238
  220. Q=0
  221. Repeat 
  222.   M=Mouse Key
  223.   If M<>0 and Mouse Zone=1
  224.     Bob 1,30,185,Vrev(6)
  225.     SCORE1=0 : SCORE2=0
  226.     RNTHR=1 : Q=1
  227.   Else If M<>0 and Mouse Zone=2
  228.     Bob 1,290,185,Vrev(6)
  229.     SCORE1=0 : SCORE2=0
  230.     RNTHR=2 : Q=1
  231.   End If 
  232. End If 
  233. Until Q=1
  234. Wait 50
  235.   Bob Off 1
  236.   Gr Writing 0
  237.   Ink 2
  238.   Text 120,40,"MOVING ON"
  239.   Open Random 1,"nomhighscr"
  240.   Field 1,8 As HN$,8 As HGH$
  241.   R=1
  242. Repeat 
  243.   HN$=HIGHNAME$(R)
  244.   HGH$=Str$(HIGH(R))
  245.   Put 1,R
  246.   Inc R
  247. Until R=8
  248.   Close 1
  249.   Wait 50
  250.   Clear Key 
  251. End Proc
  252. Procedure _HIGHADD
  253.   B=7
  254. While B>A
  255.   HIGH(B)=HIGH(B-1)
  256.   HIGHNAME$(B)=HIGHNAME$(B-1)
  257.   Dec B
  258. Wend 
  259.   HIGH(A)=SCORE1
  260.   HIGHNAME$(A)=NAME1$
  261. End Proc
  262. Procedure _HIGHADD2
  263.   B=7
  264. While B>A
  265.   HIGH(B)=HIGH(B-1)
  266.   HIGHNAME$(B)=HIGHNAME$(B-1)
  267.   Dec B
  268. Wend 
  269.   HIGH(A)=SCORE2
  270.   HIGHNAME$(A)=NAME2$
  271. End Proc
  272. Procedure _FINISH
  273.   Bob Off 
  274.   Wait 20
  275.   For F=0 To 2
  276.     Sam Play 15,1,9500
  277.     Wait 30
  278.   Next F
  279.   Gr Writing 0
  280.   Ink 2
  281.   Text 92,40,"YOU ARE A WINNER"
  282.   Music 1
  283.   Load "npics/finish.abk",10
  284.   Unpack 10 To 1
  285.   Screen Hide 1
  286.   Screen 0
  287.   Wait 50
  288.   Erase 10
  289.   Proc _EXPAND
  290.   Wait 50
  291.   Paste Bob 130,68,8
  292.   While Inkey$="" : Wend 
  293.   RNTHR=3
  294. End Proc
  295. Procedure _NAMES
  296.   Shared W,N$,NEND,M
  297.   Unpack 7 To 1
  298.   Screen Hide 1
  299.   Screen 0
  300.   Proc _EXPAND
  301. Reserve Zone 32
  302. N=3 : MM=92
  303. For F=1 To 30
  304.    Set Zone F,N,MM To N+18,MM+18
  305.      Add N,21
  306.      If F=15 Then N=3 : MM=109
  307. Next F
  308. WRT:
  309. NM=20 : NEND=0
  310. NAME1$="" : NAME2$=""
  311.   Bob 1,195,175,6
  312.   Ink 0,9
  313. Repeat 
  314.   Proc _PICKLETTER
  315.   NAME1$=NAME1$+N$
  316.   Text 163,151,NAME1$
  317.   If W>0 Then Inc NM
  318.   Wait 20
  319.   If NEND=1 Then NM=28
  320. Until NM=28
  321. '
  322. NM=20 : NEND=0
  323.   Bob 1,195,175,Vrev(6)
  324.   Ink 2,9
  325. Repeat 
  326.   Proc _PICKLETTER
  327.   NAME2$=NAME2$+N$
  328.   Text 163,206,NAME2$
  329.   If W>0 Then Inc NM
  330.   Wait 20
  331.   If NEND=1 Then NM=28
  332. Until NM=28
  333.   Bob Off 1
  334.   Ink 4,11
  335.   Text 70,245,"ALL CORRECT (Y)-(N)?"
  336.   Box 166,237 To 189,247
  337.   Box 198,237 To 221,247
  338.   Set Zone 31,166,237 To 189,247
  339.   Set Zone 32,198,237 To 221,247
  340. Q=0 : RGHT=0
  341. Repeat 
  342.   M=Mouse Key
  343.   If M<>0 and Mouse Zone=31
  344.     Cls 11,69,237 To 250,250
  345.     RGHT=1 : Q=1
  346.   Else If M<>0 and Mouse Zone=32
  347.     Reset Zone 31
  348.     Reset Zone 32
  349.     Cls 11,69,237 To 250,250
  350.     Cls 9,146,142 To 247,155
  351.     Cls 9,146,197 To 247,210
  352.     Q=1
  353.   End If : End If 
  354. Until Q=1
  355.   If RGHT=0 Then Goto WRT
  356.   RNTHR=2
  357. End Proc
  358. Procedure _PICKLETTER
  359.   Shared W,N$,NEND,SCRL$,M
  360. Q=0 : W=0
  361. Repeat 
  362.   M=Mouse Key
  363.   If M<>0
  364.      W=Mouse Zone : Q=1
  365.   End If 
  366. Until Q=1
  367.   If W=30 Then NEND=1 : N$=""
  368.   If W<30
  369.     N$=Mid$(SCRL$,W,1)
  370.   End If 
  371.   If W=0 Then N$=""
  372. End Proc
  373. Procedure _MIXUP
  374.   Randomize Timer
  375.   For F=0 To 200
  376.     A=Rnd(100)
  377.     B=Rnd(100)
  378.     Swap CM(A),CM(B)
  379.   Next F
  380. End Proc
  381. Procedure _EXPAND
  382.   Shared SCRN
  383.   If SCRN=2
  384.      Proc _LEFTTORIGHT : SCRN=1
  385.   Else If SCRN=1
  386.      Proc _TOPTOBOTTOM : SCRN=2
  387.   End If 
  388. End If 
  389. End Proc
  390. Procedure _LEFTTORIGHT
  391.   For F=0 To 320
  392.     Screen Copy 1,0,0,F,256 To 0,0,0
  393.     Screen Swap : Wait Vbl 
  394.   Next F
  395. End Proc
  396. Procedure _TOPTOBOTTOM
  397.   For F=0 To 256
  398.     Screen Copy 1,0,0,320,F To 0,0,0
  399.     Screen Swap : Wait Vbl 
  400.   Next F
  401. End Proc
  402. Procedure _SETUP
  403.   SCORE1=0 : SCORE2=0
  404. End Proc
  405. Procedure _INITHIGHSCORES
  406.   Shared SCRN,SCRL$
  407.   SCRL$="ABCDEFGHIJKLMNOPQRSTUVWXYZ -."
  408.   SCRN=1 : NX1=0
  409.   For F=0 To 100
  410.     A=Rnd(3)+1
  411.     CM(F)=A
  412.   Next F
  413.   Open Random 1,"nomhighscr"
  414.   Field 1,8 As HN$,8 As HGH$
  415.   R=1
  416. Repeat 
  417.   Get 1,R
  418.   HIGHNAME$(R)=HN$
  419.   HIGH(R)=Val(HGH$)
  420.   Inc R
  421. Until R=8
  422.   Close 1
  423. End Proc