python面向对象实例王者荣耀_python王者荣耀

python学习过程不会一却而就,需要不断的练习,做项目对python的领悟才会深刻。知识不是记出来的,而是用出来的,用的多也就记住了,把python知识积极的运用到生活,工作学习中,是一条学习python高效快捷的道路。今天我们来做一个人机对战版的王者荣耀。当然,做这个项目不是为了教大家玩游戏,而是体会理解python知识点的使用方法方式,做到对知识的知行合一。

记得小时候做数学题的时候,首先要明确解题的目标,也就是我要得出一个什么样的答案。有了这个目标之后我们才会知道出发点在哪里,知道出发点之后需要明确到终点的路线,也就是我要到达终点该做什么,先做什么再做什么。对于做项目也是一样的,我们首先需要明确项目目标,然后把大问题化解为小问题,一个一个的解决,最后问题将被我们一个一个的攻克,这时候项目自然就完成了。

王者荣耀

明确项目目标:

1.在互联网公司,一般情况下是由产品经理提出明确的项目需求,由程序员来实现,他们之间是“相爱相杀”的关系。

2.今天且让我扮演一下产品经理的角色。我们此次要实现的需求是:人机PK王者荣耀

3.简单来说,这个游戏中,会随机生成玩家和敌人的属性,同时互相攻击,直至一方血量小于零

4.另外,这样的战斗会持续三局,采取三局两胜制,最后输出战斗结果,公布获胜方

目标导向

玩游戏我们首先需要先选出游戏角色,我们的角色可以自己选择,但是敌方的得自己选择,我们又不是敌方,鬼知道它会选哪个,这个时候我们就需要为敌方设置可以随机选择游戏角色的功能。哪个模块可以随机选择呢,import random模块就有这个功能,它的random.choice()函数可以随机选择一个元素。

选择完角色,我们需要为角色配置血量和攻击值,如果我们自己定义游戏角色的血量和攻击值,那这个游戏就没有意义了,所以我们需要随机为游戏角色配置血量和攻击值,这时候有是import random模块派上用场。random.randint()函数可以随机生成一个整数。

游戏角色属性设置完成,就开始游戏战斗了,那我们如何判断输赢了,规定血量小于0则输,这个可以用while语句来判断,毕竟while语句为False时才会结束 ,我们就可以这样设置了:while 敌方>0 and 我方>0:当出现while 敌方<0 and 我方>0:或while 敌方>0 and 我方<0:判断出了胜负游戏结束

选出游戏角色—配置血量和攻击值—设置循环模式

1.引入的模块

import time #为了增加视觉感知效果引入时间模块,控制游戏进程。

import random #引入随机生成模块,配置游戏角色属性

2.游戏角色配置

name=['小乔','大桥','李白','露娜','貂蝉','关羽','铠','老夫子','韩信','上官婉儿','花木兰',

'鲁班七号','孙尚香','张良','诸葛亮','王昭君','鬼谷子','干将莫邪','庞统']

#这些设置你可以自定义的呀

3.游戏属性的生成

for i in range(1,4):

print('游戏角色:{}\n'.format(name))

name_we = input('我方请输入游戏角色:') #不想自己选择也可以设置随机生成的呀

name_we_bl = random.randint(300,500) #生成我方血量

name_we_g = random.randint(50,100) #生成我方攻击值

name_df = random.choice(name) #敌方随机选择一名游戏角色

name_df_bl = random.randint(300,500) #生成敌方血量

name_df_g = random.randint(50,100) #生成敌方攻击值

print('------前方高能,第{}局游戏开始------\n'.format(i)) #\n表示换行 .format(i)表示给{}转入参数

time.sleep(3) #延迟3秒

print('我方人物:【{0}】|血量:{1}|攻击值:{2}\n'.format(name_we,name_we_bl,name_we_g)) #.format(i)表示给{}转入参数,0代表第一个

time.sleep(3) #延迟3秒

print('敌方人物:【{0}】|血量:{1}|攻击值:{2}\n'.format(name_df,name_df_bl,name_df_g))

4.战斗过程

while name_we_bl>0 and name_df_bl>0:

name_we_bl = name_we_bl - name_df_g #战斗攻击过程,即我方角色的血量减去敌方攻击的攻击值

name_df_bl = name_df_bl - name_we_g #战斗攻击过程,即敌方角色的血量减去我方攻击的攻击值

print('我方发起了攻击:剩余血量|{}\n'.format(name_we_bl))

time.sleep(2) #延迟2秒

print('敌方发起了攻击:剩余血量{}\n'.format(name_df_bl))

if name_we_bl > name_df_bl and name_df_bl < 0: #判断我方赢

number_we = 0

number_we += 1 #计算输赢结局,赢则加1 number_we += 1表示number_we=number_we+1

print('{0},听从我的呼唤胜利\n'.format(name_we))

elif name_df_bl > name_we_bl and name_we_bl < 0: #判断敌方赢

number_bl = 0

number_bl += 1

print('{0},美妙的长眠,值得高歌一曲,啦啦啦啦啦\n'.format(name_df))

else: #双方打平

print('打平,要努力变强\n')

5.三局两胜的结果

if number_we > number_bl: #结果为我方赢

print('最犀利的剑,只为最强大的对手所挥动')

elif number_we < number_bl: #结果为敌方赢

print('弱者,才在乎耻辱')

else: #双方打平

print('心怀不惧,才能翱翔于天际')

完整代码

import time #为了增加视觉感知效果引入时间模块,控制游戏进程。

import random #引入随机生成模块,配置游戏角色属性

name=['小乔','大桥','李白','露娜','貂蝉','关羽','铠','老夫子','韩信','上官婉儿','花木兰',

'鲁班七号','孙尚香','张良','诸葛亮','王昭君','鬼谷子','干将莫邪','庞统']

for i in range(1,4):

print('游戏角色:{}\n'.format(name))

name_we = input('我方请输入游戏角色:') #不想自己选择也可以设置随机生成的呀

name_we_bl = random.randint(300,500) #生成我方血量

name_we_g = random.randint(50,100) #生成我方攻击值

name_df = random.choice(name) #敌方随机选择一名游戏角色

name_df_bl = random.randint(300,500) #生成敌方血量

name_df_g = random.randint(50,100) #生成敌方攻击值

print('------前方高能,第{}局游戏开始------\n'.format(i)) #\n表示换行 .format(i)表示给{}转入参数

time.sleep(3) #延迟3秒

print('我方人物:【{0}】|血量:{1}|攻击值:{2}\n'.format(name_we,name_we_bl,name_we_g)) #.format(i)表示给{}转入参数,0代表第一个

time.sleep(3) #延迟3秒

print('敌方人物:【{0}】|血量:{1}|攻击值:{2}\n'.format(name_df,name_df_bl,name_df_g))

while name_we_bl>0 and name_df_bl>0:

name_we_bl = name_we_bl - name_df_g #战斗攻击过程,即我方角色的血量减去敌方攻击的攻击值

name_df_bl = name_df_bl - name_we_g #战斗攻击过程,即敌方角色的血量减去我方攻击的攻击值

print('我方发起了攻击:剩余血量|{}\n'.format(name_we_bl))

time.sleep(2) #延迟2秒

print('敌方发起了攻击:剩余血量{}\n'.format(name_df_bl))

if name_we_bl > name_df_bl and name_df_bl < 0: #判断我方赢

number_we = 0

number_we += 1

print('{0},听从我的呼唤胜利\n'.format(name_we))

elif name_df_bl > name_we_bl and name_we_bl < 0: #判断敌方赢

number_bl = 0

number_bl += 1

print('{0},美妙的长眠,值得高歌一曲,啦啦啦啦啦\n'.format(name_df))

else: #双方打平

print('打平,要努力变强\n')

if number_we > number_bl: #结果为我方赢

print('最犀利的剑,只为最强大的对手所挥动')

elif number_we < number_bl: #结果为敌方赢

print('弱者,才在乎耻辱')

else: #双方打平

print('心怀不惧,才能翱翔于天际')

挺有趣的,大家可以在自己的电脑上玩玩呀

公众号:彼岸星空

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值