import random
import sys
# Function to determine winner
# Returns True if player wins, False if computer wins, None if its a draw
def judge( player, computer) :
if player == computer: return None
player_wins = [ ( 0 , 1 ) , ( 1 , 2 ) , ( 2 , 0 ) ]
return ( player, computer) in player_wins
# Simply prints the results
def show_results( player, computer, result) :
rps_map = [ 'rock' , 'scissors' , 'paper' ]
res_map = { True : 'Win' , False : 'Lost' , None : 'Draw' }
print ( "Player is {}. Computer is {}. You {}!" .format (
rps_map[ player] ,
rps_map[ computer] ,
res_map[ result] )
)
def play_round( ) :
try :
player = int ( input ( "Enter your choice in number (rock 1 / paper 2 / scissors 3): " ) ) - 1
except :
print ( "Invalid Input Quitting..." )
sys .exit ( 0 )
computer = random .randint ( 0 , 2 )
result = judge( player, computer)
show_results( player, computer, result)
return result
def main( ) :
gameOver = False
playerScore = 0
computerScore = 0
while not gameOver:
player_wins = play_round( )
if player_wins == True :
playerScore += 1
computerScore = 0
if player_wins == False :
playerScore = 0
computerScore += 1
if player_wins == None :
# Draw, do nothing to the scores
pass
if playerScore == 2 or computerScore == 2 :
print ( "Game over" )
print ( " playerScore:" , playerScore)
print ( " computerScore:" , computerScore)
gameOver = True
if __name__ == "__main__" : main( ) # your code goes here
aW1wb3J0IHJhbmRvbQppbXBvcnQgc3lzCgojIEZ1bmN0aW9uIHRvIGRldGVybWluZSB3aW5uZXIKIyBSZXR1cm5zIFRydWUgaWYgcGxheWVyIHdpbnMsIEZhbHNlIGlmIGNvbXB1dGVyIHdpbnMsIE5vbmUgaWYgaXRzIGEgZHJhdwpkZWYganVkZ2UocGxheWVyLCBjb21wdXRlcik6CiAgICBpZiBwbGF5ZXIgPT0gY29tcHV0ZXI6IHJldHVybiBOb25lCiAgICBwbGF5ZXJfd2lucyA9IFsoMCwxKSwgKDEsMiksICgyLDApXQogICAgcmV0dXJuIChwbGF5ZXIsIGNvbXB1dGVyKSBpbiBwbGF5ZXJfd2lucwoKIyBTaW1wbHkgcHJpbnRzIHRoZSByZXN1bHRzCmRlZiBzaG93X3Jlc3VsdHMocGxheWVyLCBjb21wdXRlciwgcmVzdWx0KToKICAgIHJwc19tYXAgPSBbJ3JvY2snLCAnc2Npc3NvcnMnLCAncGFwZXInXQogICAgcmVzX21hcCA9IHtUcnVlOiAnV2luJywgRmFsc2U6ICdMb3N0JywgTm9uZTogJ0RyYXcnfQogICAgcHJpbnQoIlBsYXllciBpcyB7fS4gIENvbXB1dGVyIGlzIHt9LiAgWW91IHt9ISIuZm9ybWF0KAogICAgICAgIHJwc19tYXBbcGxheWVyXSwKICAgICAgICBycHNfbWFwW2NvbXB1dGVyXSwKICAgICAgICByZXNfbWFwW3Jlc3VsdF0pCiAgICAgKQoKZGVmIHBsYXlfcm91bmQoKToKICAgIHRyeToKICAgICAgICBwbGF5ZXIgPSBpbnQoaW5wdXQoIkVudGVyIHlvdXIgY2hvaWNlIGluIG51bWJlciAocm9jayAxIC8gcGFwZXIgMiAvIHNjaXNzb3JzIDMpOiAiKSkgLSAxCiAgICBleGNlcHQ6CiAgICAgICAgcHJpbnQoIkludmFsaWQgSW5wdXQgUXVpdHRpbmcuLi4iKQogICAgICAgIHN5cy5leGl0KDApCgogICAgY29tcHV0ZXIgPSByYW5kb20ucmFuZGludCgwLDIpCgogICAgcmVzdWx0ID0ganVkZ2UocGxheWVyLCBjb21wdXRlcikKICAgIHNob3dfcmVzdWx0cyhwbGF5ZXIsIGNvbXB1dGVyLCByZXN1bHQpCiAgICByZXR1cm4gcmVzdWx0CgoKZGVmIG1haW4oKToKICAgIGdhbWVPdmVyID0gRmFsc2UKICAgIHBsYXllclNjb3JlID0gMAogICAgY29tcHV0ZXJTY29yZSA9IDAKCiAgICB3aGlsZSBub3QgZ2FtZU92ZXI6CiAgICAgICAgcGxheWVyX3dpbnMgPSBwbGF5X3JvdW5kKCkKICAgICAgICBpZiBwbGF5ZXJfd2lucyA9PSBUcnVlOgogICAgICAgICAgICBwbGF5ZXJTY29yZSArPSAxCiAgICAgICAgICAgIGNvbXB1dGVyU2NvcmUgPSAwCiAgICAgICAgaWYgcGxheWVyX3dpbnMgPT0gRmFsc2U6CiAgICAgICAgICAgIHBsYXllclNjb3JlID0gMAogICAgICAgICAgICBjb21wdXRlclNjb3JlICs9IDEKICAgICAgICBpZiBwbGF5ZXJfd2lucyA9PSBOb25lOgogICAgICAgICAgICAjIERyYXcsIGRvIG5vdGhpbmcgdG8gdGhlIHNjb3JlcwogICAgICAgICAgICBwYXNzCiAgICAgICAgaWYgcGxheWVyU2NvcmUgPT0gMiBvciBjb21wdXRlclNjb3JlID09IDI6CiAgICAgICAgICAgIHByaW50KCJHYW1lIG92ZXIiKQogICAgICAgICAgICBwcmludCgiICBwbGF5ZXJTY29yZToiLCBwbGF5ZXJTY29yZSkKICAgICAgICAgICAgcHJpbnQoIiAgY29tcHV0ZXJTY29yZToiLCBjb21wdXRlclNjb3JlKQogICAgICAgICAgICBnYW1lT3ZlciA9IFRydWUKCmlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6IG1haW4oKSMgeW91ciBjb2RlIGdvZXMgaGVyZQ==