要求:https://class.coursera.org/interactivepython-004/human_grading/view/courses/972072/assessments/28/submissions
做得跟要求有点不同。现在已经是第四周了,我还只做了前两周的练习。本月内一定要追上进度。
# play Rock-paper-scissors-lizard-Spock game with computer
import math
import random
import simplegui
#global
player_choice="choose one please"
your_choice= "nono"
message="start"
comp_number=random.randrange(0, 5)
# the first helper function,change the name to number,0 — rock,1 — Spock,2 — paper,3 — lizard,4 — scissors
def name_to_number(name):
if name=='rock':
number = 0
elif name=='spock':
number=1
elif name=='paper' :
number=2
elif name=='lizard':
number=3
elif name=='scissors':
number=4
else:
number=5
return number
# the second helper function, converts a number in the range 0 to 4 into its corresponding name as a string
def number_to_name(number):
if number == 0:
name='rock'
elif number==1:
name='spock'
elif number==2 :
name='paper'
elif number==3 :
name='lizard'
elif number==4 :
name ='scissors'
else:
name= 'unidentified number'
return name
#define an input handler
def input_handler(text):
global player_choice
player_choice=text
# define a handler to start new game
def new_game():
global comp_number
global your_choice
comp_number=random.randrange(0, 5)
# main function
def compare():
global message
player_number=name_to_number(player_choice)
if player_number == 5:
message= "start again !!!"
elif (comp_number-player_number)%5 == 0 :
message= "TIE"
elif (comp_number-player_number)%5 == 1 :
message= "you win"
elif (comp_number-player_number)%5 == 2 :
message= "you win, ok?"
else:
message= "computer wins"
return message
#define draw handler
def draw(canvas):
canvas.draw_text(compare(),[100,100],20,"White")
#create the frame
frame=simplegui.create_frame("little game",300,200)
#register event handler
frame.set_draw_handler(draw)
frame.add_input("input rock, or paper,or scissors,or lizard,or spock",input_handler,180)
frame.add_button("new game",new_game,108)
#start the game
frame.start()