home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / 251-275 / apd273 / simon.amos / simon.amosSourceCode < prev   
AMOS Source Code  |  1990-09-06  |  5KB  |  260 lines

  1. Global NOPLAYERS,NOBEEPS,DIFFICULTY
  2. Procedure INITIALISE
  3.    Break Off 
  4.    Show 
  5.    Rainbow 0,0,40,0
  6.    Rainbow 1,0,40,0
  7.    Rainbow 2,0,40,0
  8.    DIFFICULTY=1
  9.    NOPLAYERS=1
  10.    Screen Open 0,320,256,8,0
  11.    Curs Off 
  12.    Unpack 10
  13.    Flash Off 
  14.    Colour 1,$333
  15.    Colour 2,$555
  16.    Colour 3,$777
  17.    Colour 4,$700
  18.    Colour 5,$70
  19.    Colour 6,$770
  20.    Colour 7,$7
  21.    Ink 3
  22.    Paper 0
  23.    Locate 33,6
  24.    Print NOPLAYERS
  25.    Locate 33,16
  26.    Print DIFFICULTY
  27.    Limit Mouse 352,42 To 433,284
  28. End Proc
  29. Procedure PLY
  30.    Ink 3
  31.    Paper 0
  32.    Dim LIST(20)
  33.    Locate 0,0
  34.    Print "          MY TURN"
  35.    For N=1 To NOBEEPS
  36.       X=(Rnd(3))+1
  37.       LIST(N)=X
  38.       If X=1
  39.          Play $1111,25,0
  40.          Colour 4,$F00
  41.          Wait 25
  42.          Colour 4,$700
  43.       End If 
  44.       If X=2
  45.          Play $1111,27,0
  46.          Colour 5,$F0
  47.          Wait 25
  48.          Colour 5,$70
  49.       End If 
  50.       If X=3
  51.          Play $1111,29,0
  52.          Colour 6,$FF0
  53.          Wait 25
  54.          Colour 6,$770
  55.       End If 
  56.       If X=4
  57.          Play $1111,30,0
  58.          Colour 7,$F
  59.          Wait 25
  60.          Colour 7,$7
  61.       End If 
  62.    Next N
  63.    Locate 0,0
  64.    Print "                       "
  65.    Locate 0,0
  66.    Print "         YOUR TURN"
  67.    Clear Key 
  68.    For N=1 To NOBEEPS
  69.    LIMIT=0
  70.    TP:
  71.       X$=""
  72.       CHOOSE=0
  73.       Do 
  74.          X$=Inkey$
  75.          If X$<>"" Then Goto CHEESE
  76.          Inc LIMIT
  77.          If LIMIT=2500 Then Goto BT2
  78.       Loop 
  79.    CHEESE:
  80.       CHOOSE=0
  81.       If X$="e"
  82.          CHOOSE=3
  83.       End If 
  84.       If X$="i"
  85.          CHOOSE=1
  86.       End If 
  87.       If X$="j"
  88.          CHOOSE=2
  89.       End If 
  90.       If X$="d"
  91.          CHOOSE=4
  92.       End If 
  93.       If X$="E"
  94.          CHOOSE=3
  95.       End If 
  96.       If X$="I"
  97.          CHOOSE=1
  98.       End If 
  99.       If X$="J"
  100.          CHOOSE=2
  101.       End If 
  102.       If X$="D"
  103.          CHOOSE=4
  104.       End If 
  105.       If CHOOSE=0 Then Goto TP
  106.       If CHOOSE<>LIST(N) Then Goto BT1
  107.       If CHOOSE=1
  108.          Play $1111,25,0
  109.          Colour 4,$F00
  110.          Wait 25
  111.          Colour 4,$700
  112.       End If 
  113.       If CHOOSE=2
  114.          Play $1111,27,0
  115.          Colour 5,$F0
  116.          Wait 25
  117.          Colour 5,$70
  118.       End If 
  119.       If CHOOSE=3
  120.          Play $1111,29,0
  121.          Colour 6,$FF0
  122.          Wait 25
  123.          Colour 6,$770
  124.       End If 
  125.       If CHOOSE=4
  126.          Play $1111,30,0
  127.          Colour 7,$F
  128.          Wait 25
  129.          Colour 7,$7
  130.       End If 
  131.    Next N
  132.    Play $1,40,0
  133.    Play $10,41,0
  134.    Play $100,42,0
  135.    Play $1000,43,0
  136.    Locate 0,0
  137.    Print "                     "
  138.    Locate 0,0
  139.    Print "          CORRECT"
  140.    Wait 100
  141.    Locate 0,0
  142.    Print "                     "
  143.    RESULT=1
  144.    Goto FRED
  145.    BT1:
  146.       Play $1111,5,0
  147.       Locate 0,0
  148.       Print "                   "
  149.       Locate 0,0
  150.       Print "        WRONG ONE"
  151.       Wait 100
  152.       Locate 0,0
  153.       Print "                   "
  154.       RESULT=2
  155.       Goto FRED
  156.    BT2:
  157.       Play $1111,7,0
  158.       Locate 0,0
  159.       Print "                     "
  160.       Locate 0,0
  161.       Print "       OUT OF TIME"
  162.       Wait 100
  163.       Locate 0,0
  164.       Print "                     "
  165.       RESULT=3
  166.       Goto FRED
  167.    FRED:
  168. End Proc[RESULT]
  169. Procedure GAME
  170.    NOBEEPS=2+DIFFICULTY
  171.    Dim LEFT(NOPLAYERS)
  172.    Clear Key 
  173.    Rem Follow CURRENT,LEFT(CURRENT),Q,LEFT(N),FLAG
  174.    TQ:
  175.    CURRENT=1
  176.    Do 
  177.    TV:
  178.       If CURRENT>NOPLAYERS Then Goto BT
  179.       If LEFT(CURRENT)=1
  180.          Inc CURRENT
  181.          Goto TV
  182.       End If 
  183.       Locate 0,0
  184.       Print "   PLAYER";CURRENT;" PRESS ANY KEY"
  185.       Print "           TO BEGIN"
  186.       Clear Key 
  187.       Wait Key 
  188.       Locate 0,0
  189.       Print "                            "
  190.       Print "                    "
  191.       PLY
  192.       Q=Param
  193.       If Q=2 or Q=3
  194.          LEFT(CURRENT)=1
  195.       End If 
  196.       Inc CURRENT
  197.    Loop 
  198.    BT:
  199.    Rem Follow N,FLAG,LEFT(N)
  200.    FLAG=0
  201.    For N=1 To NOPLAYERS
  202.       If LEFT(N)=0
  203.          FLAG=1
  204.       End If 
  205.    Next N
  206.    If FLAG=1
  207.       Inc NOBEEPS
  208.       Goto TQ
  209.    End If 
  210.    Locate 0,0
  211.    Print "       GAME OVER"
  212.    Wait 100
  213.    Locate 0,0
  214.    Print "                "
  215. End Proc
  216. Procedure MAIN
  217.    Reserve Zone 4
  218.    Set Zone 1,241,10 To 302,40
  219.    Set Zone 2,241,77 To 302,101
  220.    Set Zone 3,241,145 To 302,206
  221.    Set Zone 4,241,216 To 300,240
  222.    QW:
  223.    Repeat 
  224.    Until Mouse Click=1
  225.    X=X Screen(X Mouse)
  226.    Y=Y Screen(Y Mouse)
  227.    T=Zone(X,Y)
  228.    If T=0 Then Goto QW
  229.    If T=1
  230.       Inc NOPLAYERS
  231.       If NOPLAYERS=9
  232.          NOPLAYERS=1
  233.       End If 
  234.       Locate 33,6
  235.       Print "  "
  236.       Locate 33,6
  237.       Print NOPLAYERS
  238.    End If 
  239.    If T=2
  240.       Inc DIFFICULTY
  241.       If DIFFICULTY=10
  242.          DIFFICULTY=1
  243.       End If 
  244.       Locate 33,16
  245.       Print "  "
  246.       Locate 33,16
  247.       Print DIFFICULTY
  248.    End If 
  249.    If T=3
  250.       GAME
  251.    End If 
  252.    If T=4
  253.       Cls 0
  254.       Limit Mouse 128,40 To 128+320,40+256
  255.       Run "mania1:autoexec.amos"
  256.    End If 
  257.    Goto QW
  258. End Proc
  259. INITIALISE
  260. MAIN