Rock Paper Scissors

Tags: terminal, game

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()