- 第七关的重点知识点函数为(计时属性)time模块 和(随机属性) random模块
通过前面几关的学习,我们脑海中定然是有了以下这些函数的用法:
列表、字典、for循环、while循环以及 if 函数、input函数
那么,既然是第七关了,以上函数必定是都会用到的。
所以,我们先来看最简单的重复利用来运行一个简单的重复pk游戏。
这里用到的就是for循环,简单2次循环下的print运行:
![96cd53f62f1d20b9c738e4e9d30fa11f.png](https://i-blog.csdnimg.cn/blog_migrate/bfdb23a21ddeebdafdab633c35644589.jpeg)
了解了大概的游戏循环形式,接下来咱们就开始来了解time模块和random模块的作用:
#time 模块
计时器import time #调用time模块
time.sleep()
#time.sleep相当于休眠,()里填上任意数字
#然后将time.sleep()放到你要休眠的代码下即可
#示例
import timeprint('我很好')
time.sleep(2)
print('我也很棒!')
#打印出来后会发现在我很好后会停顿大概2秒再打印我也很棒
#random 模块
随机抽取import random
# 同样调用random模块,import是打开的意思。
random.randint(a,b) # 随机在a 到 b中生成数字
#示例
import random
number=random.randint(5,7)
print(number)
>>> 5 6 7 #随机生成
#除此之外,random还有以下两个用法
#random.random() #用于生成一个0到1之间的随机符点数(注意不包含0和1)
import random
a=random.random()
print(a)
>>>0.9792289565726476
#random.uniform(a,b)
#用于生成一个(a,b)之间的浮点数
import random
a=random.uniform(10,15)
print(a)
>>>10.500775002432427
知道了Time和Random用法后,在原有的for循环上加进time和random,这里记得要赋值了,因为random是随机的,不能再用print直接打印。
![df7e724836de9e748a70e7eb14752076.png](https://i-blog.csdnimg.cn/blog_migrate/57f68ad2c53c67bbdfefdd9746695c0f.jpeg)
最难一点来了!!!!
while True + break 定义三局结束分出胜负后,询问你是否还要继续。
看代码!看代码!看代码!
import time,random #调用time和random模块
my_win = 0 #加个空房间用来计分 把它当作0:0的记分牌you_win = 0 #方便后面计算输赢
while True:
end= input('请问继续游戏还是退出游戏') #input互动
if end == '继续':
#如果输入继续,新一轮开始
print('新一轮pk开始') for i in range(4):
#定义每一轮的游戏为三局 time.sleep(1) #间隔时间
print('--------NO.'+str(i)'-------') time.sleep(2)
print('--------------------------')
my_life = random.randint(100,150) my_attack = random.randint(30,50) #随机生成数字
you_life = random.randint(100,150) you_attack = random.randint(30,50)
# 展示双方角色的属性
print('【我】n'+'生命值:'+str(my_life)+'n攻击:'+str(my_attack))
print('-------------------------') time.sleep(1)
print('【你】n'+'生命值:'+str(you_life)+'n攻击:'+str(you_attack))
print('---------------------------') time.sleep(1)
while my_life > 0 and you_life <0 : my_life = my_life - you_attack #重新赋值,定义pk后的生命值
you_life = you_life - my_attack
print('我发起了攻击,你的生命值还剩'+str(you_life))
print('你发起了攻击,我的生命值还剩'+str(my_life)) print('===========================')
#打印最终战果
if my_life > 0 and you_life <= 0:
my_win +=1 #我赢就加一分
print('敌人死翘翘了,你赢了!')
elif my_life <= 0 and you_life > 0: you_win +=1
print('悲催,敌人把你干掉了!') else:
print('哎呀,你和敌人同归于尽了!')
if my_win > you_win: time.sleep(1.5)
print('行吧,最后还是你赢了')
elif you_win>my_win: print('最后你输了')
else:
print('最后平局')
if end=='退出': #注意缩进!
#返回最开始的询问,输入的是退出,会自动再来一句后直接结束整个游戏
break
划重点!
一定要注意代码的 缩进!缩进!缩进!
尤其是嵌套函数中一层套一层的缩进!
时刻牢记 缩进字符!
小技巧:代码很简单,关键在你能不能先用汉语构建一个框架,当你用汉语把一个小游戏写出来后,再分别套入相关的函数代码,就会容易很多。
举个简单的例子:
1、游戏循环三遍,有限循环用for循环
2、需要两个人,你的生命值和攻击是多少,我的生命值和攻击是多少
3、直接打印,打印中输入手动计算出的生命值,直到为0
把这个例子对应到最开始的for循环中,你看看是不是会更容易理解
扫码关注公众号【桥南有料】
内含风变的学习笔记,并且也会持续更新学习笔记和心得,目前已更新到第8关!
![a4beffc6e7d5398d4a96abac0761e2fa.png](https://i-blog.csdnimg.cn/blog_migrate/eaf1017f6b67ee595f4bd4b7e553bd80.jpeg)