Guest User

Untitled

a guest
Apr 27th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.91 KB | None | 0 0
  1. """
  2. Week 4 practice project template for Python Programming Essentials
  3. Rock-paper-scissors-lizard-Spock
  4. """
  5.  
  6. import random
  7.  
  8. # The key idea of this program is to equate the strings
  9. # "rock", "paper", "scissors", "lizard", "Spock" to numbers
  10. # as follows:
  11. #
  12. # 0 - rock
  13. # 1 - Spock
  14. # 2 - paper
  15. # 3 - lizard
  16. # 4 - scissors
  17.  
  18. # helper functions
  19.  
  20. def name_to_number(name):
  21. """
  22. Given string name, return integer 0, 1, 2, 3, or 4
  23. corresponding to numbering in video
  24. """
  25.  
  26. # convert name to number using if/elif/else
  27. # don't forget to return the result!
  28. if name == 'rock':
  29. return 0
  30. elif name == 'Spock':
  31. return 1
  32. elif name == 'paper':
  33. return 2
  34. elif name == 'lizard':
  35. return 3
  36. elif name == 'scissors':
  37. return 4
  38. else:
  39. return "Name operation not found"
  40.  
  41. def number_to_name(number):
  42. """
  43. Given integer number (0, 1, 2, 3, or 4)
  44. corresponding name from video
  45. """
  46.  
  47. # convert number to a name using if/elif/else
  48. # don't forget to return the result!
  49.  
  50. if number == 0:
  51. return 'rock'
  52. elif number == 1:
  53. return 'Spock'
  54. elif number == 2:
  55. return 'paper'
  56. elif number == 3:
  57. return 'lizard'
  58. elif number == 4:
  59. return 'scissors'
  60. else:
  61. return "Number operation not found"
  62.  
  63.  
  64. def rpsls(player_choice):
  65. """
  66. Given string player_choice, play a game of RPSLS
  67. and print results to console
  68. """
  69.  
  70. # print a blank line to separate consecutive games
  71.  
  72. # print out the message for the player's choice
  73.  
  74. # convert the player's choice to player_number using the function name_to_number()
  75.  
  76. # compute random guess for comp_number using random.randrange()
  77.  
  78. # convert comp_number to comp_choice using the function number_to_name()
  79.  
  80. # print out message for computer's choice
  81.  
  82. # compute difference of player_number and comp_number modulo five
  83.  
  84. # use if/elif/else to determine winner and print winner message
  85.  
  86. print ('')
  87. print (player_choice)
  88. choice_to_num = name_to_number(player_choice)
  89.  
  90. # compute random guess for comp_number using random.randrange()
  91.  
  92. comp_number = random.randrange(0, 5)
  93.  
  94. # convert comp_number to comp_choice using the function number_to_name()
  95. comp_choice = number_to_name(comp_number)
  96. # print out message for computer's choice
  97. print (comp_choice)
  98.  
  99. # compute difference of player_number and comp_number modulo five
  100. difference = (comp_number - choice_to_num)%5
  101. # use if/elif/else to determine winner and print winner message
  102. if difference == 0:
  103. print ("Player and computer tie")
  104. elif difference == 1 or difference == 2:
  105. print ("Computer wins")
  106.  
  107. else:
  108. print ('Player wins')
  109.  
  110.  
  111. # test your code
  112. rpsls("rock")
  113. rpsls("Spock")
  114. rpsls("paper")
  115. rpsls("lizard")
  116. rpsls("scissors")
  117.  
  118. # always remember to check your completed program against the grading rubric
Add Comment
Please, Sign In to add comment