依然是整理的来自 The Rice的课程 An Introduction to Interactive Programming in Python (Part 1)第四周的小项目,一个简单的秒表游戏,点击停止时,秒表的秒钟是整数的话胜利加一分,这里用到了SimpleGUI的 timer小工具。
源代码
# template for "Stopwatch: The Game"
# define global variables
import simplegui
sum_times = 0
message = '0:00.0'
message2 = '0/0'
x = 0
y = 0
# define helper function format that converts time
# in tenths of seconds into formatted string A:BC.D
def format(t):
global message, d
a = t // 600
d = t % 10
b = ((t % 600 - d)/10) // 10
c = ((t % 600 - d)/10) % 10
message = str(a) + ':' + str(b) + str(c) + '.' + str(d)
def update():
global sum_times
sum_times += 1
format(sum_times)
# define event handlers for buttons; "Start", "Stop", "Reset"
def start():
timer.start()
def stop():
global x, y, message2
if timer.is_running():
y += 1
if timer.is_running() and d == 0:
x += 1
message2 = str(x) + '/' + str(y)
timer.stop()
def restart():
global sum_times, x, y, message, message2
sum_times = 0
x = 0
y = 0
message = '0:00.0'
message2 = '0/0'
timer.stop()
# define event handler for timer with 0.1 sec interval
timer = simplegui.create_timer(100, update)
# define draw handler
def draw(canvas):
canvas.draw_text(message, [90,112], 48, "Red")
canvas.draw_text(message2, [270,20], 20, "Red")
# create frame
frame = simplegui.create_frame("Home", 300, 200)
frame.add_button("Start", start)
frame.add_button("Stop", stop)
frame.add_button("Restart", restart)
frame.set_draw_handler(draw)
# register event handlers
# start frame
frame.start()
运行结果示例