home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / 501-525 / apd519 / lottomagic / lottomagic.amosSourceCode < prev    next >
AMOS Source Code  |  1992-01-03  |  8KB  |  403 lines

  1. '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  2. '                                Lotto V1.0
  3. '
  4. '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  5. '
  6. '
  7. Dim RANDNUMS(44),FINAL6(5),STATS(44),LASTDRAW(7)
  8. Global RANDNUMS(),FINAL6(),GOT_NUMS,STATS(),LASTDRAW()
  9. Shift Off 
  10. Fade 15
  11. Wait 225
  12. Proc SHUT_SCREENS
  13. Proc MAKE_SCREENS
  14. Proc MAINLOOP
  15. Procedure SCRNDWN
  16.    For I=150 To 220
  17.       Screen Display 0,,I,,
  18.       Wait Vbl 
  19.    Next I
  20.    Screen 0
  21.    Pen 1
  22.    Paper 7
  23.    Cdown 
  24. End Proc
  25. Procedure SCRNUP
  26.    For I=220 To 150 Step -1
  27.       Screen Display 0,,I,,
  28.       Wait Vbl 
  29.    Next I
  30.    Unpack 8 To 0
  31.    Screen To Back 0
  32.    Screen 1
  33. End Proc
  34. Procedure QUIT
  35.    Screen 0
  36.    Locate 0,1
  37.    Pen 1
  38.    Paper 7
  39.    Centre "This program is copyright"
  40.    Cdown 
  41.    Centre "1992 Hitman/Karma Productions."
  42.    Cdown 
  43.    Centre "LottoMagic V1.0 is FreeWare."
  44.    Screen 1
  45.    Fade 15
  46.    For I=0 To 128
  47.       Screen Display 1,,40+I,,256-(2*I)
  48.       Mvolume 63-(0.492187*I)
  49.       Wait Vbl 
  50.    Next I
  51.    Music Off 
  52.    Screen Close 1
  53.    Mvolume 63
  54.    For I=150 To 260
  55.       Screen Display 0,,I,,
  56.       Wait Vbl 
  57.    Next I
  58.    Wait 200
  59.    For I=260 To -100 Step -10
  60.       Screen Display 0,,I,,
  61.       Wait Vbl 
  62.    Next I
  63.    Proc SHUT_SCREENS
  64.    Run "loader"
  65. End Proc
  66. Procedure BLANK[N]
  67.    Screen N
  68.    Palette 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  69. End Proc
  70. Procedure SHUT_SCREENS
  71.    While Screen<>-1
  72.       Screen Close Screen
  73.    Wend 
  74. End Proc
  75. Procedure MAKE_SCREENS
  76.    Break Off 
  77.    Close Workbench 
  78.    Close Editor 
  79.    Led Off 
  80.    Load "fx/popcorn.abk"
  81.    Music 1
  82.    Change Mouse 2
  83.    Show On 
  84.    Unpack 6 To 1
  85.    X Mouse=287
  86.    Y Mouse=123
  87.    Double Buffer 
  88.    Reserve Zone 5
  89.    Set Zone 1,7,7 To 48,27
  90.    Set Zone 2,12,53 To 70,74
  91.    Set Zone 3,130,52 To 188,73
  92.    Set Zone 4,249,52 To 307,73
  93.    Set Zone 5,94,91 To 227,116
  94.    Screen Hide 1
  95.    Unpack 7 To 2
  96.    Unpack 8 To 0
  97.    Screen Hide 0
  98.    Screen To Back 0
  99.    BLANK[1]
  100.    Screen Show 1
  101.    Screen Show 0
  102.    Fade 5 To 2
  103.    Wait 75
  104.    Bob 0,13,20,3
  105.    Bob 1,131,20,1
  106.    Bob 2,250,20,5
  107.    Limit Bob 0,52 To 320,74
  108.    For I=20 To 54
  109.       Bob 0,,I,
  110.       Wait Vbl 
  111.    Next I
  112.    For I=20 To 53
  113.       Bob 1,,I,
  114.       Wait Vbl 
  115.    Next I
  116.    For I=20 To 53
  117.       Bob 2,,I,
  118.       Wait Vbl 
  119.    Next I
  120.    Bob 3,8,30,9
  121.    Limit Bob 0,7 To 48,27
  122.    For I=27 To 8 Step -1
  123.       Bob 3,,I,
  124.       Wait Vbl 
  125.    Next I
  126.    Bob 4,95,60,7
  127.    Limit Bob 80,91 To 240,116
  128.    For I=60 To 92
  129.       Bob 4,,I,
  130.       Wait Vbl 
  131.    Next I
  132.    Bob 5,49,138-30,10
  133.    Bob 6,87,138+30,10
  134.    Bob 7,125,138-30,10
  135.    Bob 8,163,138+30,10
  136.    Bob 9,201,138-30,10
  137.    Bob 10,239,138+30,10
  138.    Limit Bob 0,139 To 320,158
  139.    For I=108 To 138
  140.       Bob 5,,I,
  141.       Bob 7,,I,
  142.       Bob 9,,I,
  143.       Wait Vbl 
  144.    Next I
  145.    For I=168 To 138 Step -1
  146.       Bob 6,,I,
  147.       Bob 8,,I,
  148.       Bob 10,,I,
  149.       Wait Vbl 
  150.    Next I
  151.    For I=138 To 108 Step -1
  152.       For J=5 To 10
  153.          Bob J,,I,
  154.       Next J
  155.       Wait Vbl 
  156.    Next I
  157. End Proc
  158. Procedure MY_CREDS
  159.    Bob 1,,,2
  160.    Hide 
  161.    For I=320 To 40 Step -2
  162.       Screen Display 2,,I,,
  163.       Wait Vbl 
  164.    Next I
  165.    Repeat 
  166.    Until Mouse Key
  167.    For I=40 To -216 Step -4
  168.       Screen Display 2,,I,,
  169.       Wait Vbl 
  170.    Next I
  171.    Unpack 7 To 2
  172.    Screen 1
  173.    Bob 1,,,1
  174.    X Mouse=287
  175.    Y Mouse=123
  176.    Show 
  177. End Proc
  178. Procedure GEN_NUMBERS
  179.    Bob 0,,,4
  180.    Wait Vbl 
  181.    Hide 
  182.    Limit Bob 0,139 To 320,158
  183.    For I=108 To 138 Step 2
  184.       For J=5 To 10
  185.          Bob J,,I,
  186.       Next J
  187.       Wait Vbl 
  188.    Next I
  189.    Randomize Timer
  190.    For I=0 To 44
  191.       RANDNUMS(I)=I+1
  192.    Next I
  193.    For I=0 To 5
  194.       RAND=Rnd(44-I)
  195.       FINAL6(I)=RANDNUMS(RAND)
  196.       RANDNUMS(RAND)=99
  197.       Sort RANDNUMS(0)
  198.    Next I
  199.    Sort FINAL6(0)
  200.    Ink 1,0
  201.    For I=1 To 6
  202.       Text 20+(I*38),150,"  "
  203.    Next I
  204.    For I=1 To 6
  205.       Text 20+(I*38),150,Str$(FINAL6(I-1))-" "
  206.    Next I
  207.    For I=138 To 108 Step -2
  208.       For J=5 To 10
  209.          Bob J,,I,
  210.       Next J
  211.       Wait Vbl 
  212.    Next I
  213.    GOT_NUMS=True
  214.    Limit Bob 
  215.    X Mouse=187
  216.    Y Mouse=123
  217.    Show 
  218.    Bob 0,,,3
  219. End Proc
  220. Procedure ENTER_NUMBERS
  221.    Bob 4,,,8
  222.    Hide 
  223.    Clear Key 
  224.    STAT_LOAD
  225.    SCRNDWN
  226.    Centre "Last draws number entry......"
  227.    Locate 1,2
  228.    For I=0 To 7
  229.       Read A$
  230.       Locate 1,2
  231.       Print "                                  "
  232.       Locate 1,2
  233.       Print "Enter ";A$;" number >";
  234.       Input LASTDRAW(I)
  235.    Next I
  236.    Sort LASTDRAW(0)
  237.    For I=0 To 7
  238.       If LASTDRAW(I)>45 or LASTDRAW(I)<=0
  239.          WRONG_NUMS=True
  240.       End If 
  241.    Next I
  242.    If WRONG_NUMS=True
  243.       SCRNUP
  244.       SCRNDWN
  245.       Centre "Some numbers incorrect."
  246.       Wait 100
  247.    Else 
  248.       SCRNUP
  249.       SCRNDWN
  250.       Centre "The numbers were:"
  251.       Locate 2,2
  252.       For I=0 To 6
  253.          W$=W$+Str$(LASTDRAW(I))+","
  254.       Next I
  255.       W$=W$+Str$(LASTDRAW(7))+"."
  256.       Centre W$
  257.       Cdown 
  258.       Centre "Correct Y/N ?"
  259.       ANS$=Input$(1)
  260.       If Upper$(ANS$)<>"Y"
  261.          WRONG_NUMS=True
  262.       End If 
  263.    End If 
  264.    If WRONG_NUMS=False
  265.       For I=0 To 7
  266.          Inc STATS(LASTDRAW(I)-1)
  267.       Next I
  268.       Open Out 1,"Lotto.stats"
  269.       For I=0 To 44
  270.          Print #1,STATS(I)
  271.       Next I
  272.       Close 1
  273.    End If 
  274.    SCRNUP
  275.    Bob 4,,,7
  276.    X Mouse=287
  277.    Y Mouse=123
  278.    Show 
  279.    Data "first","second","third","fourth","fifth","sixth","first supp.","second supp."
  280. End Proc
  281. Procedure PR_NUMS
  282.    Lprint "Here are some (hopefully) lucky numbers:"
  283.    Lprint 
  284.    For I=0 To 5
  285.       Lprint FINAL6(I),
  286.    Next I
  287.    Lprint 
  288.    Lprint 
  289.    Lprint 
  290.    Wait 50
  291. End Proc
  292. Procedure STAT_GEN
  293.    Randomize Timer
  294.    Bob 2,,,6
  295.    Wait Vbl 
  296.    Hide 
  297.    Limit Bob 0,139 To 320,158
  298.    For I=108 To 138 Step 2
  299.       For J=5 To 10
  300.          Bob J,,I,
  301.       Next J
  302.       Wait Vbl 
  303.    Next I
  304.    STAT_LOAD
  305.    For I=0 To 44
  306.       RANDNUMS(I)=99
  307.    Next I
  308.    TIMES=0
  309.    POS=0
  310.    Repeat 
  311.       For I=0 To 44
  312.          If STATS(I)=TIMES
  313.             RANDNUMS(POS)=I+1
  314.             Inc POS
  315.          End If 
  316.       Next I
  317.       Inc TIMES
  318.    Until POS>9
  319.    Sort RANDNUMS(0)
  320.    For I=1 To 6
  321.       RAND=Rnd(POS-I)
  322.       FINAL6(I-1)=RANDNUMS(RAND)
  323.       RANDNUMS(RAND)=99
  324.       Sort RANDNUMS(0)
  325.    Next I
  326.    Sort FINAL6(0)
  327.    Ink 1,0
  328.    For I=1 To 6
  329.       Text 20+(I*38),150,"  "
  330.    Next I
  331.    For I=1 To 6
  332.       Text 20+(I*38),150,Str$(FINAL6(I-1))-" "
  333.    Next I
  334.    For I=138 To 108 Step -2
  335.       For J=5 To 10
  336.          Bob J,,I,
  337.       Next J
  338.       Wait Vbl 
  339.    Next I
  340.    GOT_NUMS=True
  341.    Limit Bob 
  342.    X Mouse=387
  343.    Y Mouse=123
  344.    Show 
  345.    Bob 2,,,5
  346. End Proc
  347. Procedure MAINLOOP
  348.    Limit Bob 
  349.    Repeat 
  350.       If Mouse Key=1
  351.          If Mouse Zone=1
  352.             QUIT=True
  353.          End If 
  354.          If Mouse Zone=2
  355.             GEN_NUMBERS
  356.          End If 
  357.          If Mouse Zone=3
  358.             MY_CREDS
  359.          End If 
  360.          If Mouse Zone=4
  361.             STAT_GEN
  362.          End If 
  363.          If Mouse Zone=5
  364.             ENTER_NUMBERS
  365.          End If 
  366.       End If 
  367.       If Mouse Key=2
  368.          If GOT_NUMS=True
  369.             PR_NUMS
  370.          Else 
  371.             SCRNDWN
  372.             Centre "Nothing to print !!"
  373.             Wait 100
  374.             SCRNUP
  375.          End If 
  376.       End If 
  377.    Until QUIT=True
  378.    Proc QUIT
  379. End Proc
  380. Procedure STAT_LOAD
  381.    If Exist("Lotto.stats")
  382.       SCRNDWN
  383.       Centre "Reading statistics...."
  384.       Open In 1,"Lotto.stats"
  385.       For I=0 To 44
  386.          Input #1,STATS(I)
  387.       Next I
  388.       Wait 50
  389.       SCRNUP
  390.       Close 1
  391.    Else 
  392.       SCRNDWN
  393.       Centre "Unable to locate stats...."
  394.       Cdown 
  395.       Centre "Creating file."
  396.       Open Out 1,"Lotto.stats"
  397.       For I=0 To 44
  398.          Print #1,0
  399.       Next I
  400.       Close 1
  401.       SCRNUP
  402.    End If 
  403. End Proc