文章目录
-
一、需求分析
-
二、编程思路
-
三、完整代码
-
引用源自
本例是我在中国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:
#判断是否继续闯关,输入0时,使用break语句跳出循环
#3.输入0时,退出游戏,输入1时,继续游戏,其他情况默认进入游戏。
begin = input("继续闯关吧?(1-继续,0-退出):")
if begin == '0':
break
elif begin == '1':
else:
print("您输入的操作码不正确,默认进入闯关状态!")
#跳出while循环后
print("太遗憾了...您已经入第【%d】关,获得【%d】积分都将被清零!"%(rank,allScore))
注:range()函数是左闭右开的,即包含左值,不包含右边
引用源自
中国MOOC ppython编程基础https://www.icourse163.org/course/HBRJ-1206206801
本篇完,如有错误欢迎指出~
python 数组倒序输出 python倒排序输出
python语言中的列表排序方法有三个:reverse反转/倒序排序、sort正序排序、sorted可以获取排序后的列表。在更高级列表排序中,后两中方法还可以加入条件参数进行排序。reverse()方法将列表中元素反转排序,比如下面这样>>> x = [1,5,2,3,4]
>>> x.reverse()
[4, 3, 2, 5,