Rock Paper Scissors
Future Publishing: The Python Book 2021, 32
Todo
description
rock_paper_scissors.py
1#!/usr/bin/env python2
2
3import random
4import time
5
6rock = 1
7paper = 2
8scissors = 3
9
10names = {
11 rock: "Rock",
12 paper: "Paper",
13 scissors: "Scissors",
14 }
15
16
17rules = {
18 rock: scissors,
19 paper: rock,
20 scissors: paper,
21 }
22
23player_score = 0
24computer_score = 0
25
26
27def start(): # {{{
28 print("Let's play a game of Rock, Paper, Scissors.")
29 while game(): pass
30 scores()
31# }}}
32def game(): # {{{
33 player = move()
34 computer = random.randint(1, 3)
35 result(player, computer)
36 return play_again()
37# }}}
38def move(): # {{{
39 while True:
40 player = raw_input("Rock = 1\nPaper = 2\nScissors = 3\nMake a move: ")
41 try:
42 player = int(player)
43 if player in (1, 2, 3):
44 return player
45 except ValueError:
46 pass
47 print "Oops I didn't understand that, Please enter 1, 2 or 3."
48# }}}
49def result(player, computer): # {{{
50 print "1..."
51 time.sleep(1)
52 print "2..."
53 time.sleep(1)
54 print "3..."
55 time.sleep(1)
56 print "Computer chose {0}!".format(names[computer])
57 global player_score, computer_score
58 if player == computer:
59 print("Tie game.")
60 else:
61 if rules[player] == computer:
62 print("Your victory has been assured")
63 player_score += 1
64 else:
65 print("The computer laughs as you realise you have been defeated")
66 computer_score += 1
67# }}}
68def play_again(): # {{{
69 answer = raw_input("Would you like to play again? y/n:")
70 if answer in ("y", "Y"):
71 return True
72 else:
73 print("Thank you very much for playing our game. See you next time!")
74# }}}
75def scores(): # {{{
76 global player_score, computer_score
77 print("HIGH SCORES")
78 print("Player", player_score)
79 print("Computer", computer_score)
80# }}}
81
82if __name__ == "__main__":
83 start()