home *** CD-ROM | disk | FTP | other *** search
/ AMOS PD CD / amospdcd.iso / 101-125 / apd107 / leaguesim.amos / leaguesim.amosSourceCode
AMOS Source Code  |  1991-02-14  |  3KB  |  133 lines

  1. ' League Sim By D. Ramsey
  2. ' For advice etc, write to :-  
  3. ' 2,THE PADDOCKS,HADDENHAM,AYLESBURY,BUCKS HP17 8AG  
  4. ' Feb 91 
  5. Screen Open 0,320,200,4,Lowres
  6. Curs Off : Hide On : Flash Off : Paper 0 : Pen 1
  7. Palette $978,0,$FFE,$443
  8. Dim TEAM$(22),SKILL#(22),WON(22),DRWN(22),LOST(22),PTS(22)
  9. DELAY=1
  10. ' Delay in printing league table 
  11. ' Teams Skill increases with success, decreases with failure 
  12. SETUP:
  13. Cls 0 : MTCH=0
  14. Restore TEAMDAT
  15. For A=1 To 20
  16.    Read TEAM$(A),SKILL#(A)
  17.    WON(A)=0 : DRWN(A)=0 : LOST(A)=0 : PTS(A)=0
  18. Next 
  19. '
  20. TEAMDAT:
  21. Data "Liverpool",8,"Arsenal",7,"Crystal Palace",8,"Manchester United",9,"Leeds United",8,"Tottenham Hotspur",7
  22. Data "Manchester City",7,"Wimbledon",6,"Chelsea",6,"Norwich City",6,"Nottingham Forest",6,"Everton",6,"Aston Villa",6
  23. Data "Southampton",5,"Coventry City",5,"Luton Town",5,"Sunderland",4,"Queens Park Rangers",4,"Sheffield United",3,"Derby County",3
  24. ' Skill Level Of Team 3-9
  25. ' Fixtures are not calculated properly,
  26. ' Each team plays the team below in the league.
  27. MAIN:
  28. ' 38 Games in a season 
  29. If MTCH=38 Then Gosub NDGAME
  30. For B=1 To 20 Step 2
  31.    H=Rnd(SKILL#(B)*2.1)
  32.    A=Rnd(SKILL#(B+1)*2.1)
  33.    H=H/3 : A=A/3
  34.    ' H & A are scores  Home & Away
  35.    If H>A
  36.       Inc WON(B)
  37.       Inc LOST(B+1)
  38.       PTS(B)=PTS(B)+3
  39.       SKILL#(B)=SKILL#(B)+0.3
  40.       SKILL#(B+1)=SKILL#(B+1)-0.3
  41.    End If 
  42.    If A>H
  43.       Inc WON(B+1)
  44.       Inc LOST(B)
  45.       PTS(B+1)=PTS(B+1)+3
  46.       SKILL#(B+1)=SKILL#(B+1)+0.3
  47.       SKILL#(B)=SKILL#(B)-0.3
  48.    End If 
  49.    If A=H
  50.       Inc DRWN(B)
  51.       Inc DRWN(B+1)
  52.       Inc PTS(B)
  53.       Inc PTS(B+1)
  54.    End If 
  55.    If SKILL#(B+1)>9 Then SKILL#(B+1)=9
  56.    If SKILL#(B)>9 Then SKILL#(B)=9
  57.    If SKILL#(B+1)<3 Then SKILL#(B+1)=3
  58.    If SKILL#(B)<3 Then SKILL#(B)=3
  59. Next 
  60. '
  61. '
  62. SRT:
  63. ' Simple Bubble Sort 
  64. For A=1 To 20
  65.    For B=A+1 To 21
  66.       If PTS(B)>PTS(A)
  67.          Swap TEAM$(A),TEAM$(B)
  68.          Swap PTS(A),PTS(B)
  69.          Swap WON(A),WON(B)
  70.          Swap DRWN(A),DRWN(B)
  71.          Swap LOST(A),LOST(B)
  72.       End If 
  73.    Next B
  74. Next A
  75. Inc MTCH
  76. '
  77. 'Print Out League with delay after each team 
  78. Pen 1
  79. Locate 1,0
  80. Print "       BARCLAYS LEAGUE DIVISION ONE"
  81. Pen 3
  82. Locate 1,2
  83. Print "Pos  Team                P  W  D  L Pts"
  84. Pen 1
  85. For A=1 To 20
  86.    ' As A increases, position on screen goes down 
  87.    Wait DELAY
  88.    Locate 0,A+2
  89.    ' Erase old Line 
  90.    Print "                                        "
  91.    Locate 0,A+2
  92.    Print A
  93.    Locate 4,A+2
  94.    ' Highlight the best team! 
  95.    If TEAM$(A)="Manchester United" Then Pen 3 Else Pen 2
  96.    Print TEAM$(A)
  97.    Locate 25,A+2
  98.    Pen 1
  99.    Print MTCH
  100.    Locate 28,A+2
  101.    Print WON(A)
  102.    Locate 31,A+2
  103.    Print DRWN(A)
  104.    Locate 34,A+2
  105.    Print LOST(A)
  106.    Locate 37,A+2
  107.    Print PTS(A)
  108. Next 
  109. Wait(DELAY*15)
  110. Goto MAIN
  111. '
  112. '
  113. 'End Of Game Screen
  114. NDGAME:
  115. Cls 0
  116. Locate 1,2
  117. Centre "League Winners"
  118. Locate 1,4
  119. ' First Team 
  120. Centre TEAM$(1)
  121. Locate 1,5
  122. T$="SKILL FACTOR :"+Str$(SKILL#(1))
  123. Centre T$
  124. Locate 1,7
  125. Centre "Runners Up"
  126. Locate 1,9
  127. Centre TEAM$(2)
  128. '
  129. Locate 1,18
  130. Centre "Hit The Mouse"
  131. Repeat : Until Mouse Key
  132. Goto SETUP
  133. ' Making Sure to Restore Data and not Re-Dim Arrays