快捷搜索:

Python实现烧脑猜数字小游戏——超详细注解


  本例是我在中国MOOC学习基础语法时做到的小例子,这里加上我的理解和一些注释分享给大家希望能够对大家有所帮助~

一、需求分析

案例:烧脑的猜数字小游戏(共10关)

编写程序,实现可升级的猜数字小游戏,游戏规则如下:

1.该游戏共有10个关卡,默认当前关卡为第1关,第1关: 随机数1-10;第2关:随机数1-20,…第10关:随机数1-100。

2.进入游戏关卡后, 系统产生该关卡的随机数,提示用户输入猜测的数字,猜对或达到次数后结束该关卡,如果达到闯关标准,进入下一关,否则继续进入该关卡闯关。

①每个关卡有100积分, 共5次猜数字机会, ②关卡总积分大于等于100时, 可进入第2关,大于等于200时,可进入第3关,依次类推。 ③猜数字时,如果用户猜对不扣分,猜错扣20积分,猜大提示大了,猜小提示小了。

3.输入0时, 退出游戏,输入1时继续游戏,其他情况默认进入游戏。

二、编程思路

  根据题意我们能够知道游戏关卡和游戏总积分是一直要用到的,所以我们将他设置为全局变量,并且将关卡初始值定义为1。根据要求三我们可以采用while循环,让用户输入1/0来判断是继续游戏还是退出游戏。关于要求二我们需要引入random包,来进行随机数的相关操作。下面展示一下最终结果:

三、完整代码

#烧脑猜数字小游戏
import random
#1.定义游戏菜单、等级及总积分
menu="""
--------------------烧脑的猜数字小游戏(共10关)--------------------
"""
rank = 1 #游戏关卡,默认为第一关
allScore = 0 #总积分
print(menu)#2.打印输出菜单
#3.用while循环,控制整个程序的执行过程
while True:
    #闯关操作
    #4.进入游戏后,系统产生该关卡的随机数
    number = random.randint(1,rank*10)
    #5.提示用户输入猜测的数字,猜对或达到次数后结束该关卡
    #每个关卡有100分,共5次猜数字的机会。
    score = 100
    n = 5
    for i in range(1,n+1):#表示猜字次数
        #猜字过程
        guess = int(input("请输入您猜的数字(1-%d):"%(rank*10)))
        if guess == number:
            print("猜对啦!恭喜您获得%d积分"%(score))
            break
        elif guess > number:
            print("大了,大了...")
        else:
            print("小了,小了...")
        #猜错,本关卡扣20积分,提示用户
        score = score - 20
        print("您本轮积分还有%d,只剩%d次机会!"%(score,n-i))

    allScore += score #实现积分的累加
    #关卡总积分大于等于100时,进入第二关,大于等于200时,进入第三关,以此类推
    if(allScore//100+1)>rank:
        rank+=1
        print("恭喜您已获得【%d】积分,成功升级到第【%d】关!"%(allScore,rank))
    else:
        print("恭喜您已获得【%d】积分,第【%d】关!" %(allScore,rank))
    if rank == 10:
        print("恭喜您已经通关")
    else:
        pass
    #判断是否继续闯关,输入0时,使用break语句跳出循环
    #3.输入0时,退出游戏,输入1时,继续游戏,其他情况默认进入游戏。
    begin = input("继续闯关吧?(1-继续,0-退出):")
    if begin == 0:
        break
    elif begin == 1:
        pass
    else:
        print("您输入的操作码不正确,默认进入闯关状态!")
#跳出while循环后
print("太遗憾了...您已经入第【%d】关,获得【%d】积分都将被清零!"%(rank,allScore))

注:range()函数是左闭右开的,即包含左值,不包含右边

引用源自

中国MOOC ppython编程基础https://www.icourse163.org/course/HBRJ-1206206801

  本篇完,如有错误欢迎指出~

经验分享 程序员 职场和发展