美文网首页Python
Python小练习之龟兔赛跑

Python小练习之龟兔赛跑

作者: __method__ | 来源:发表于2020-06-13 10:11 被阅读0次

    (模拟龟兔赛跑)本练习中要模拟龟兔赛跑的寓言故事。用随机数产生器建立模拟龟兔赛跑的程序。 对手从70个方格的第1格开始起跑,每格表示跑道上的一个可能位置,终点线在第70格处。 第一个到达终点的选手奖励一个新鲜萝卜和莴苣。兔子要在山坡上睡一觉,因此可能失去冠军。 有一个每秒钟滴答一次的钟,程序应按下列规则调整动物的位置:

    用变量跟踪动物的位置(即位置号1到70)。每个动物从位置1开始,如果动物跌到第1格以外,则移回第1格。 产生随机整数1≤i≤10),以得到上表中的百分比。对于乌龟,1≤i≤5时快走,6≤i≤7时跌跤,8≤i≤10时慢走,兔子也用相似的方法。 起跑时,打印: BANG !!!!! AND THEY' RE OFF !!!!! 时钟每次滴答一下(即每个重复循环),打印第70格位置的一条线,显示乌龟的位置T和兔子的位置H。 如果两者占用一格,则乌龟会咬兔子,程序从该位置开始打印 OUCH!!!。除T、H和OUCH!!!以外的其他打印位置都是空的。 打印每一行之后,测试某个动物是否超过了第70格,如果是,则打印获胜者,停止模拟。 如果乌龟赢,则打印TORTOISE WINS!!!YAY!!!。如果兔子赢,则打印Hare wins.Yush。 如果两个动物同时赢,则可以同情弱者,让乌龟赢,或者打印It's a tie。如果两者都没有赢,则再次循环,模拟下一个时钟滴答。 准备运行程序时,让一组拉拉队看比赛,你会发现观众有多么投入。

    import time
    from random import randint
    
    print('begin')
    
    hPos = 0
    tPos = 0
    
    while True:
        paodao = '_' * 70
        num = randint(1,10)
    
        if 1<=num<=5:
            tPos+=3
        elif 6<=num<=7:
            tPos-=6
        else:
            tPos+=1
    
        if num<=2:
            hPos=hPos
        elif 3<=num<=4:
            hPos+=9
        elif num==5:
            hPos-=12
        elif 6<=num<=8:
            hPos+=1
        else:
            hPos-=2
    
    
        if tPos < 0:
            tPos = 0
        if hPos < 0:
            hPos = 0
    
        if tPos > 70 or hPos > 70:
            break
    
        if tPos == hPos:
            # yao
            paodao = paodao[:tPos] + '咬' + paodao[tPos+1:]
        else:
            paodao = paodao[:tPos] + '龟' + paodao[tPos + 1:]
            paodao = paodao[:hPos] + '兔' + paodao[hPos + 1:]
    
        print(paodao)
        time.sleep(0.3)
    
    
    if tPos > 70:
        print('龟赢')
    else:
        print('兔赢')
    

    相关文章

      网友评论

        本文标题:Python小练习之龟兔赛跑

        本文链接:https://www.haomeiwen.com/subject/zhratktx.html