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('心怀不惧,才能翱翔于天际')
挺有趣的,大家可以在自己的电脑上玩玩呀
公众号:彼岸星空
python面向对象实例王者荣耀_python王者荣耀相关推荐
- python面向对象实例王者荣耀_大牛程序员利用Python开发王者荣耀带妹神器,一路直奔上王者...
王者荣耀 -很火的手游-简直老少通吃-令人发指-虽然操作简单-但为什么你还是会被虐, 其实 是有技巧的--本文Python大神带你研究王者荣耀各类英雄的出装小技巧,让你成为大神般的存在 前期准备 环境 ...
- python面向对象编程138讲_Python面向对象编程简单讲解
学习目标: 1-面向对象编程 2-类和对象 3-对象的属性和方法 4-类的特性 Python面向对象编程 一种编程程序的设计思想,把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数.把计算机 ...
- python面向对象类的成员_Python面向对象中类的成员
Python面向对象中类的成员总共有三种,分别是字段.方法和属性 Python Version: 3.5+ 字段 普通字段1 2 3 4 5 6 7 8class A: def __init__(se ...
- python面向对象实例王者荣耀_Python设计王者荣耀人物结构(63)*
今天我们作为游戏程序员,设计王者荣耀人物结构.王者荣耀,玩家可以选择很多英雄,每种英雄有很多属性,请用我们学过的list和字典,将这些内容表达出来,并用循环遍历你创造的英雄,并打印出他们的属性出来. ...
- python面向对象实例王者荣耀_PYTHON-面向对象-练习-王者荣耀 对砍游戏
# 王者荣耀 对砍游戏 # 两个英雄可以对砍 如果血量小于等于0 就GG # 所需的对象 # 英雄对象 """ 亚瑟 属性 类型 血量 名称 技能 Q 跳起来给你一刀 伤 ...
- python面向对象实例王者荣耀_Python3 类与对象之王者荣耀对战小游戏
王者荣耀对战小游戏 # 定义英雄: 亚瑟 class Arthur: hero_type = 'Tank' def __init__(self, attack_value=164, armor=98, ...
- python面向对象大段代码_python面向对象部分简单整理
面向对象 VS 面向过程 面向过程 面向过程的程序设计的核心是过程(流水线式思维) 优点: 极大的降低了写程序的复杂度 缺点: 一整个过程(流水线)只能解决一个问题,若问题更改,代码几乎要全部重写. ...
- python面向对象有什么用_Python 中的面向对象没有意义
许多人都在抨击面向对象,虽然我不认为他有什么问题,但我觉得至少在Python 中没必要. 近来,许多人都在抨击面向对象,虽然我不认为面向对象本身有什么问题,但我觉得至少在 Python 中没这个必要. ...
- python面向对象编程教程入门_python入门教程09-01 (python语法入门之面向对象编程)...
分类是人们认识世界的一个很自然的过程,在日常生活中会不自觉地将对象进行进行分类,面向不同的对象处理的方式也不同,下面我们一起来看看吧! 一 对象的概念 "面向对象"的核心是&quo ...
- python面向对象大段代码_python粗谈面向对象(一)
面向过程编程vs函数式编程 面向过程编程 以计算对象的元素个数为例. str_1 = 'abcdefg'count=0for i in str_1: #统计字符串元素个数 count += 1list ...
最新文章
- SQL Server游标的使用【转】
- linux c 结构体初始化的四种方法
- 下载python的步骤ios_下载及安装Python详细步骤
- 【系统平台】大四区部署
- vuepress侧边栏配置_vuepress的侧边栏怎么动态生成
- leetcode445. 两数相加 II
- 相机噪声与深度感知的方法梳理
- python迭代器与生成器_python的迭代器与生成器实例详解
- centos 减少tty数量的方法
- C++windows内核编程笔记day11 win32静态库和动态库的使用
- 【C语言】之冒泡排序法(详解)
- 开始学习ruby,对此语言的简介
- php判断电脑还是手机浏览器打开网页,PHP函数判断电脑端浏览器访问访问还是手机端浏览器访问...
- 六款顶级Wifi无线网络搜索工具盘点
- 2020 DEMO CHINA首次进入成都,解码智慧经济新时代
- Unity 的Position和Rotation问题(坑)
- WPF Button 设置圆角 CornerRadius属性的使用
- 2019美团后台开发工程师笔试
- android adb:电池与电量
- 电子科技大学 图论期末复习 公式索引
热门文章
- POJ 3422 Kaka's Matrix Travels(最小费用最大流+拆点)
- c int转字符串_零基础如何学好Python 之int 数字整型类型 定义int()范围大小转换...
- ThrealLocal原理讲解
- qt将tablewidget导出为excel
- 使用smtplib库隐藏授权码发送邮件
- oracle数据库查表创建语句,转载:如何查看Oracle数据表的建表语句?
- 串口之COMMTIMEOUTS结构体
- 3S基础知识:MapInfo MapX中如何保存专题地图
- MATLAB实现一个简单的车牌识别小程序
- 计算机套题库c版,计算机二级C语言上机题库100套(最新版)