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王者荣耀相关推荐

  1. python面向对象实例王者荣耀_大牛程序员利用Python开发王者荣耀带妹神器,一路直奔上王者...

    王者荣耀 -很火的手游-简直老少通吃-令人发指-虽然操作简单-但为什么你还是会被虐, 其实 是有技巧的--本文Python大神带你研究王者荣耀各类英雄的出装小技巧,让你成为大神般的存在 前期准备 环境 ...

  2. python面向对象编程138讲_Python面向对象编程简单讲解

    学习目标: 1-面向对象编程 2-类和对象 3-对象的属性和方法 4-类的特性 Python面向对象编程 一种编程程序的设计思想,把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数.把计算机 ...

  3. python面向对象类的成员_Python面向对象中类的成员

    Python面向对象中类的成员总共有三种,分别是字段.方法和属性 Python Version: 3.5+ 字段 普通字段1 2 3 4 5 6 7 8class A: def __init__(se ...

  4. python面向对象实例王者荣耀_Python设计王者荣耀人物结构(63)*

    今天我们作为游戏程序员,设计王者荣耀人物结构.王者荣耀,玩家可以选择很多英雄,每种英雄有很多属性,请用我们学过的list和字典,将这些内容表达出来,并用循环遍历你创造的英雄,并打印出他们的属性出来. ...

  5. python面向对象实例王者荣耀_PYTHON-面向对象-练习-王者荣耀 对砍游戏

    # 王者荣耀 对砍游戏 # 两个英雄可以对砍 如果血量小于等于0 就GG # 所需的对象 # 英雄对象 """ 亚瑟 属性 类型 血量 名称 技能 Q 跳起来给你一刀 伤 ...

  6. python面向对象实例王者荣耀_Python3 类与对象之王者荣耀对战小游戏

    王者荣耀对战小游戏 # 定义英雄: 亚瑟 class Arthur: hero_type = 'Tank' def __init__(self, attack_value=164, armor=98, ...

  7. python面向对象大段代码_python面向对象部分简单整理

    面向对象 VS 面向过程 面向过程 面向过程的程序设计的核心是过程(流水线式思维) 优点: 极大的降低了写程序的复杂度 缺点: 一整个过程(流水线)只能解决一个问题,若问题更改,代码几乎要全部重写. ...

  8. python面向对象有什么用_Python 中的面向对象没有意义

    许多人都在抨击面向对象,虽然我不认为他有什么问题,但我觉得至少在Python 中没必要. 近来,许多人都在抨击面向对象,虽然我不认为面向对象本身有什么问题,但我觉得至少在 Python 中没这个必要. ...

  9. python面向对象编程教程入门_python入门教程09-01 (python语法入门之面向对象编程)...

    分类是人们认识世界的一个很自然的过程,在日常生活中会不自觉地将对象进行进行分类,面向不同的对象处理的方式也不同,下面我们一起来看看吧! 一 对象的概念 "面向对象"的核心是&quo ...

  10. python面向对象大段代码_python粗谈面向对象(一)

    面向过程编程vs函数式编程 面向过程编程 以计算对象的元素个数为例. str_1 = 'abcdefg'count=0for i in str_1: #统计字符串元素个数 count += 1list ...

最新文章

  1. SQL Server游标的使用【转】
  2. linux c 结构体初始化的四种方法
  3. 下载python的步骤ios_下载及安装Python详细步骤
  4. 【系统平台】大四区部署
  5. vuepress侧边栏配置_vuepress的侧边栏怎么动态生成
  6. leetcode445. 两数相加 II
  7. 相机噪声与深度感知的方法梳理
  8. python迭代器与生成器_python的迭代器与生成器实例详解
  9. centos 减少tty数量的方法
  10. C++windows内核编程笔记day11 win32静态库和动态库的使用
  11. 【C语言】之冒泡排序法(详解)
  12. 开始学习ruby,对此语言的简介
  13. php判断电脑还是手机浏览器打开网页,PHP函数判断电脑端浏览器访问访问还是手机端浏览器访问...
  14. 六款顶级Wifi无线网络搜索工具盘点
  15. 2020 DEMO CHINA首次进入成都,解码智慧经济新时代
  16. Unity 的Position和Rotation问题(坑)
  17. WPF Button 设置圆角 CornerRadius属性的使用
  18. 2019美团后台开发工程师笔试
  19. android adb:电池与电量
  20. 电子科技大学 图论期末复习 公式索引

热门文章

  1. POJ 3422 Kaka's Matrix Travels(最小费用最大流+拆点)
  2. c int转字符串_零基础如何学好Python 之int 数字整型类型 定义int()范围大小转换...
  3. ThrealLocal原理讲解
  4. qt将tablewidget导出为excel
  5. 使用smtplib库隐藏授权码发送邮件
  6. oracle数据库查表创建语句,转载:如何查看Oracle数据表的建表语句?
  7. 串口之COMMTIMEOUTS结构体
  8. 3S基础知识:MapInfo MapX中如何保存专题地图
  9. MATLAB实现一个简单的车牌识别小程序
  10. 计算机套题库c版,计算机二级C语言上机题库100套(最新版)