面向对象这里我学了几天了,一道坎,感觉有些难,分享一下我的一个作业。需求目前是达到了,但是太啰嗦。

1.使用面向对象思想,写出下列场景:玩家攻击(攻击力)敌人,敌人(血量)受伤后掉血,还可能死亡(播放动画),敌人攻击(攻击力)玩家,玩家(血量)受伤后碎屏,还可能死亡(游戏结束),

设计上要满足类与类行为不同,就是他们的职责不同,比如题目中的攻击是一个,掉血又是另一种行为,死亡依然是一种行为,所以应该分三个类。
攻击力,血量,玩家或者敌人,这些都是类中的数据。
但是在本次,我把后两个类合一起了,我只做了两个类,死亡那个完全可以通过受伤的血量变化来判断。下面是我的做法。

class Atk_game:"""数据类"""def __init__(self,name = "",hp = 0,atk = 0,id = 0):self.name = nameself.hp = hpself.atk = atkself.id = iddef print_message(self,list_player,list_enimy):  #显示每回合数据用的self.id += 1  #做个回合累加计数print("第%d回合"%(self.id))for item in list_player:print(item.name,item.hp,item.atk,)for item in list_enimy:print(item.name,item.hp,item.atk,)
class Atk:"""攻击类"""def __init__(self):self.game = Atk_game()    #调用上一个类def atk_enimy(self,list_player,list_enimy): #意思是玩家攻击敌人的时候# self.game.id += 1list_enimy[0].hp -= list_player[0].atk  #这里没有考虑护甲,拳拳到肉if list_enimy[0].hp <= 0:               #攻击力多少,对面就掉多少print("敌人死亡")pass        #播放动画(这里目前没要求让做)def atk_player(self,list_player,list_enimy):    #意思是敌人攻击玩家的时候# self.game.id += 1list_player[0].hp -= list_enimy[0].atkprint("碎屏")         #这是玩家受伤后的屏幕效果,类似于其他游戏掉血红屏的样子if list_player[0].hp <= 0:print("玩家死亡")
game01 = Atk_game("player",1000,100)
game02 = Atk_game("enimy",2000,51)
list01 = [game01]
list02 = [game02]
g01 = Atk_game()
a01 = Atk()
while True:         #这里就是两个人一直打直到一方的hp没了a01.atk_enimy(list01,list02)a01.atk_player(list01,list02)g01.print_message(list01,list02)if list01[0].hp<=0 or list02[0].hp <=0:break

再给大家看一下控制台效果。

碎屏
第1回合
player 949 100
enimy 1900 51
碎屏
第2回合
player 898 100
enimy 1800 51
碎屏
第3回合
player 847 100
enimy 1700 51
碎屏
第4回合
player 796 100
enimy 1600 51
碎屏
第5回合
player 745 100
enimy 1500 51
碎屏

好了,我分享结束了,如果有哪里我错误很愚蠢,很简陋的话,一定告诉我。希望我们共同进步。
谢谢观看!祝你们学业进步,身体健康,事业有成,家庭和睦。

Python面向对象-回合制游戏攻击模式--基础相关推荐

  1. python回合制游戏教程_Python基础之面向对象(回合制游戏)

    需求: 回合制游戏: 大话西游.梦幻西游.魔塔... 角色: Hero: 属性: 名字.生命值.伤害值(浮动随机值) 方法: 攻击方法 Boss: 属性: 名字.生命值.伤害值(浮动) 方法: 攻击方 ...

  2. python 实现回合制游戏

    import time import randomclass Role():def __init__(self, name, sex, equipment, blood=100):self.name ...

  3. Unity3D游戏开发之回合制游戏原型的实现

    http://blog.csdn.net/qinyuanpei/article/details/28125171 大家好,欢迎大家关注我的博客,我是秦元培,我的博客地址是blog.csdn.net/q ...

  4. python可以制作回合制游戏么_Python制作回合制手游外挂简单教程(上)

    正文 引入: 每次玩回合制游戏的时候,反反复复的日常任务让人不胜其烦 玩问道的时候,我们希望能够自动刷道,玩梦幻希望能自动做师门.捉鬼等等 说明: 该外挂只能模拟鼠标键盘操作,并不能修改游戏数据 我这 ...

  5. 【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

    本系列文章由zhmxy555编写,转载请注明出处. 文章链接  http://blog.csdn.net/zhmxy555/article/details/7447864 作者:毛星云    邮箱:  ...

  6. 【Visual C 】游戏开发笔记十六 讲解一个完整的回合制游戏demo

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...

  7. 第9章 梦的初现——开发回合制游戏《勇者斗恶龙》

    这一章是对前面讲解的所有Windows 下游戏编程知识的一个总结和拔高,综合了Windows 基础编程,GDI 绘图基础,透明贴图,动画显示技术,输入消息处理以及粒子系统,是对前面八章内容的一个大综合 ...

  8. AI回合制游戏,过程比较简单。程序中的f变量和条件语句用的很经典。

    本系列文章由zhmxy555编写,转载请注明出处. 文章链接  http://blog.csdn.net/zhmxy555/article/details/7447864 作者:毛星云    邮箱:  ...

  9. [原]【Visual C++】游戏开发笔记十六 讲解一个完整的回合制游戏demo

    本系列文章由zhmxy555编写,转载请注明出处. 文章链接  http://blog.csdn.net/zhmxy555/article/details/7447864 作者:毛星云    邮箱:  ...

最新文章

  1. 2018年薪资最高的15个技术岗
  2. python反射实例化_Python类反射机制使用实例解析
  3. 怎样把颜色转换为字符串
  4. [原]CUDA中grid、block、thread、warp与SM、SP的关系
  5. Postgres客户端编码问题
  6. 巧用路径工具做流线字
  7. java nio 事件_Java NIO原理及实例
  8. 2017 年,阿里巴巴开源的那些事儿
  9. Mac电脑的12个神奇隐藏功能
  10. linux拨号日志,Linux系统日志管理:(1)连接时间日志
  11. 分享免费下载论文的网站
  12. 【Proteus仿真】51单片机+DAC0832+LCD1602制作LM317数控直流电源
  13. jscpd--前端代码重复率检测
  14. Java Word文档模板内容替换
  15. linux设备如何获取经纬度,openlayers鼠标移动获取地图经纬度格式化的两种方式
  16. data在c语言中的作用,data是什么意思
  17. Hexo+Butterfly主题美化
  18. java什么算垃圾代码,[把代码写成诗]Java美好的承诺,自动回收垃圾
  19. Git- Fast Forward和no fast forward
  20. 【web安全】——XXE漏洞快速入门

热门文章

  1. 东农计算机调剂,2019年东北农业大学农业机械化工程专业考研调剂信息
  2. mppdb 查看建表语句_drds mppdb
  3. Bootstrap详解
  4. CAD看图软件怎么把dwg格式转换成dxf格式
  5. 梅捷SY-APU-E24主板小试
  6. js range 对象研究
  7. 湖北省15市、1洲、1区行政区划 (2023)
  8. 在mvc与EF框架环境下实现的分业查询笔记
  9. Python中的ULM类图
  10. c语言教学理念和思路,基于CDIO教育理念的C语言程序设计课程教学改革.doc