Mini-project # 3 - "Stopwatch: The Game"

本文介绍了一个使用SimpleGUI库实现的简易定时器游戏项目。作者在博客中分享了游戏的源代码,并提到了在开发过程中遇到的主要问题:如何实现在特定时间点准确显示更新后的计时器读数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

= =上周的作业,一直忘记更新啦

 

这周是做一个定时器游戏。。然而因为永远不能停在正确的位置导致测试好麻烦 - -

有一个问题是:

  好像不能每次发生改变的时候再用改变字符串的形式使输出改变,而只能在参数里调转成字符串的函数才能在正常的时间点显示T T 

  原因不知。。

http://www.codeskulptor.org/#user40_Dfn3DhnkwjfR7Mb.py

import simplegui
# define global variables
time = 0
isrunning = False
succ = 0
tot = 0


# define helper function format that converts time
# in tenths of seconds into formatted string A:BC.D
def format(t):
    D = t % 10;
    t /= 10;
    A = t / 60;
    B = t % 60
    C = B % 10;
    B /= 10
    return str(A)+":"+str(B)+str(C)+"."+str(D)
    
# define event handlers for buttons; "Start", "Stop", "Reset"
def start_game():
    global time, isrunning
    isrunning = True
    timer.start()
    
def stop_game():
    global tot, isrunning, succ
    timer.stop()
    if isrunning == True:
        tot += 1
        if time % 10 == 0 :
            succ += 1
    isrunning = False
    
def Clear():
    global time, succ, tot
    time = 0
    succ = 0
    tot = 0
    isrunning = False
    timer.stop()
    
# define event handler for timer with 0.1 sec interval
def tick():
    global time
    time += 1
# define draw handler
def draw(canvas):
    canvas.draw_text(format(time), [200,215],32,"White")
    canvas.draw_text(str(succ)+'/'+str(tot), [340,20], 28, "Blue")
    
# create frame
f = simplegui.create_frame("Timer Game", 400, 400)
timer = simplegui.create_timer(100, tick)
start = f.add_button("Start", start_game)
stop = f.add_button("Stop", stop_game)
reset = f.add_button("Reset", Clear)

# register event handlers
f.set_draw_handler(draw)

# start frame
f.start()

# Please remember to review the grading rubric
View Code

 

转载于:https://www.cnblogs.com/bbbbbq/p/4733407.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值