Advertisement
makispaiktis

Uefa Predictor

Oct 23rd, 2019 (edited)
383
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.58 KB | None | 0 0
  1. import math
  2. import random
  3.  
  4. # The functions random.random() generates a number from 0.000000000 to 0.999999999 (from 0 inclusive to 1 exclusive)
  5. # If I want to generate a number from 0......100, I have to write
  6. # math.floor(random.random() * 101)
  7.  
  8. # 1. Introduction - Rules of the game
  9. print()
  10. print("**** WELCOME TO UEFA PREDICTOR PROGRAMME. You have to guess the score of a random match: Team A - Team B ****")
  11. print()
  12. print("1. If you guess the final winner/result of match (winner A, winner B or tie), you will get 3 points.")
  13. print("2. If you guess correctly the exact goals of one team (such as Team A), you will get 1 point.")
  14. print("3. If you have guessed correctly the final winner/result of the match AND you have also found correctly")
  15. print("the goal difference between the 2 teams, you will get 1 point.")
  16. print("So, if you guessed the EXACT SCORE of the match, you will get: 3 + (1 + 1) + 1 = 6 points")
  17. print()
  18. print()
  19.  
  20. # 2. Ask the user for the prediction - Check for invalid values in goals inputs
  21. print("Time for prediction. The match is between Team A and Team B. Write down separately how many goals you think the teams will score.")
  22. goalsA = int(input("Goals of Team A: "))
  23. while(goalsA <= 0):
  24.     goalsA = int(input("Goals of Team A: "))
  25. goalsB = int(input("Goals of Team B: "))
  26. while(goalsB <= 0):
  27.     goalsB = int(input("Goals of Team B: "))
  28.  
  29. # 3. Generate 2 numbers as the goals for the 2 teams
  30.     # 0: 0 will be created with 6/34 different ways (numbers )
  31.     # 1: 1 will be created with 10/34 different ways (numbers )
  32.     # 2: 2 will be created with 10/34 different ways (numbers )
  33.     # 3: 3 will be created with 4/34 different ways (numbers )
  34.     # 4: 4 will be created with 2/34 different ways (numbers )
  35.     # 5: 5 will be created with 1/34 different ways (numbers )
  36.     # 6: 6 will be created with 1/34 different ways (numbers )
  37. # In the end I will create a number which will be 0,1,2,3,4,5 or 6 but with different possibility
  38.  
  39. # Creating 2 indexes from 0 to 33 (range = 34 numbers)
  40. indexOfRealGoalsA = math.floor(random.random() * 34)
  41. indexOfRealGoalsB = math.floor(random.random() * 34)
  42. realGoalsA = -1000;
  43. realGoalsB = -1000;
  44.  
  45. # Create 2 if-statements to find how many goals has every team scored
  46.  
  47. # TEAM A
  48. if indexOfRealGoalsA >= 0 and indexOfRealGoalsA <=5:                            # 6 values
  49.     realGoalsA = 0
  50. elif indexOfRealGoalsA >= 6 and indexOfRealGoalsA <=15:                         # 10 values
  51.     realGoalsA = 1
  52. elif indexOfRealGoalsA >= 16 and indexOfRealGoalsA <=25:                        # 10 values
  53.     realGoalsA = 2
  54. elif indexOfRealGoalsA >= 26 and indexOfRealGoalsA <=29:                        # 4 values
  55.     realGoalsA = 3
  56. elif indexOfRealGoalsA == 30 or indexOfRealGoalsA == 31:                        # 2 values
  57.     realGoalsA = 4
  58. elif indexOfRealGoalsA == 32:                                                   # 1 value
  59.     realGoalsA = 5
  60. elif indexOfRealGoalsA == 33:                                                   # 1 value
  61.     realGoalsA = 6
  62.  
  63.  
  64. # TEAM B
  65. if indexOfRealGoalsB >= 0 and indexOfRealGoalsB <=5:                            # 6 values
  66.     realGoalsB = 0
  67. elif indexOfRealGoalsB >= 6 and indexOfRealGoalsB <=15:                         # 10 values
  68.     realGoalsB = 1
  69. elif indexOfRealGoalsB >= 16 and indexOfRealGoalsB <=25:                        # 10 values
  70.     realGoalsB = 2
  71. elif indexOfRealGoalsB >= 26 and indexOfRealGoalsB <=29:                        # 4 values
  72.     realGoalsB = 3
  73. elif indexOfRealGoalsB == 30 or indexOfRealGoalsB == 31:                        # 2 values
  74.     realGoalsB = 4
  75. elif indexOfRealGoalsB == 32:                                                   # 1 value
  76.     realGoalsB = 5
  77. elif indexOfRealGoalsB == 33:                                                   # 1 value
  78.     realGoalsB = 6
  79.  
  80.  
  81. # 4. Printing the final results between the 2 teams and the guesses also
  82. print()
  83. print()
  84. print("*************************************")
  85. print("Final Result: Team A - Team B : " + str(realGoalsA) + " - " + str(realGoalsB))
  86. print("You guessed:  Team A - Team B : " + str(goalsA) + " - " + str(goalsB))
  87. print("*************************************")
  88.  
  89.  
  90. # 5. Starting the process for giving points
  91. points = 0
  92.  
  93. # **********************************************************************************************************************
  94. # Start with **** RULE 2 ****
  95. foundGoalsA = False
  96. foundGoalsB = False
  97.  
  98. if goalsA == realGoalsA:
  99.     points += 1
  100.     foundGoalsA = True
  101. if goalsB == realGoalsB:
  102.     points += 1
  103.     foundGoalsB = True
  104. # **********************************************************************************************************************
  105. # Continue with **** RULE 1 ****
  106. result = -1000
  107. realResult = -1000
  108. foundResult = False
  109. # Results will take one of these 3 values:
  110.     # 1: Winner A
  111.     # 2: Winner B
  112.     # 0: Tie
  113.  
  114. # a) For the user's predictions
  115. if goalsA > goalsB:
  116.     result = 1
  117. elif goalsA < goalsB:
  118.     result = 2
  119. else:
  120.     result = 0
  121.  
  122. # b) For the final/real results
  123. if realGoalsA > realGoalsB:
  124.     realResult = 1
  125. elif realGoalsA < realGoalsB:
  126.     realResult = 2
  127. else:
  128.     realResult = 0
  129.  
  130. # Compare the 2 results
  131. if result == realResult:
  132.     points += 3
  133.     foundResult = True
  134.  
  135.  
  136. # **********************************************************************************************************************
  137. # Last rule is **** RULE 3 ****
  138. # Rule 3 precedes that user has found the result of the winner ---> foundResult == True
  139. foundGoalDifference = False
  140. if(foundResult):
  141.     if goalsA - goalsB == realGoalsA - realGoalsB:
  142.         points += 1
  143.         foundGoalDifference = True
  144.  
  145.  
  146. # **********************************************************************************************************************
  147. # **********************************************************************************************************************
  148. # **********************************************************************************************************************
  149. # **********************************************************************************************************************
  150. # Comparisons and calculations have stopped, it's time for displaying the user's points
  151. print()
  152. print("You got " + str(points) + " points!")
  153. if(foundResult):
  154.     print("Took +3 for guessing correctly the final winner/result of the match")
  155. if(foundGoalsA):
  156.     print("Took +1 for guessing correctly the goals from Team A")
  157. if(foundGoalsB):
  158.     print("Took +1 for guessing correctly the goals from Team B")
  159. if(foundGoalDifference):
  160.     print("Took +1 for guessing correctly the goal difference between the 2 teams")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement