一个有趣的(无聊的)关于类的Python王者荣耀小游戏(咳咳)

最近老师给我们布置了一个类的作业,我在网上看(瞥)了好多教程,一时间 心领神会,心血来潮,,心有灵犀,,,不对。。不管了,写了一个无聊的游戏练练手 
o(# ̄▽ ̄)==O)) ̄0 ̄")o 金钢飞拳~!!

import random as rd
import time
import threading
import os# 生命体
class Life:def __init__(self, name='LIFE', life=100, attack=100, defend=100, money=300):self.name = nameself.life = lifeself.attack = attackself.defend = defendself.money = moneyself.vis_lt = []def fight(self):pass# 武器装备,技能
class Weapon:def __init__(self):pass# 英雄
class Hero(Life):def __init__(self, name='镜', life=3000, attack=200, defend=100, money=300, ocu_name='打野'):super().__init__(name, life, attack, defend, money)self.ocu_name = ocu_nameself.move()self.kill_monster = 0self.kill_hero = 0self.hurt_level = self.attack  # 伤害水平def __str__(self):return '%s:%s life:%s attack:%s defend:%s money:%s position:%s' % (self.ocu_name, self.name, self.life, self.attack, self.defend, self.money, self.position)# 1英雄随机运动寻找目标def move(self):enemy = monsterif isinstance(enemy, Monsters) and len(enemy.mst_lt) != 0:count = 0while len(self.vis_lt) < 1:  # 视野空 可在此设置最小同时打野数count += 1self.p_x = rd.randrange(0, 400, 10)self.p_y = rd.randrange(0, 400, 10)self.position = (self.p_x, self.p_y)for mon in enemy.mst_lt:if abs(mon.p_x - self.p_x) <= 20 and abs(mon.p_y - self.p_y) <= 20:  # 视野范围20x20self.vis_lt.append(mon)  # 发现野怪mon.vis_lt.append(self)  # 同时被发现,可能被多个野怪发现if len(self.vis_lt) != 0 and self.life > 0:print('搜寻%s次 终于找到%s只野怪:' % (count, len(self.vis_lt)), *self.vis_lt, sep='\n')else:print('生命值%s,you have been killed by %s!!!\n累计打野数:%s  累计击败英雄数%s' % (self.life, self.vis_lt[0].name, self.kill_monster, self.kill_hero))else:print('所有野怪均被消灭!!!')os._exit(0)# 2攻击目标,次线程def fight(self):enemy = self.vis_lt[0]if isinstance(enemy, Hero):enemy.life -= self.attackelif isinstance(enemy, Monster):Times = 0while enemy.life > 0 and self.life > 0:Times += 1enemy.life -= self.hurt_levelprint('\n[打野第%s下]---> %s 生命值:%s' % (Times, enemy.name, enemy.life))time.sleep(0.3)  # 打野速度体现while enemy.life <= 0 and self.life > 0:self.kill_monster += 1self.money += enemy.money  # 增加金币,回血self.life += enemy.moneyprint('[%s Killed %s野怪, 回血%s 生命值:%s]\n\n继续寻找下一只野怪。。。' % (self.name, enemy.name, enemy.money, self.life))self.vis_lt.remove(enemy)monster.mst_lt.remove(enemy)break# 重复搜索,打野过程def mainloop(self):while len(self.vis_lt) != 0:if self.life > 0:self.fight()self.move()else:break# 野怪
class Monster(Life):def __init__(self, name='LIFE', life=500, attack=180, defend=100, money=800, mon_name='野怪'):super().__init__(name, life, attack, defend, money)self.mon_name = mon_nameself.p_x = rd.randrange(0, 400, 10)self.p_y = rd.randrange(0, 400, 10)self.position = (self.p_x, self.p_y)def __str__(self):return '%s:%s life:%s attack:%s defend:%s money:%s positon:%s' % (self.mon_name, self.name, self.life, self.attack, self.defend, self.money, self.position)# 报复目标,次线程def fight(self):while len(self.vis_lt) != 0:enemy = self.vis_lt[0]Times = 0while enemy.life > 0 and self.life > 0:Times += 1enemy.life -= self.attackprint('\n(你被%s报复第%s下)---> %s 生命值:%s' % (self.name, Times, enemy.name, enemy.life))time.sleep(0.3)  # 野怪攻击速度体现else:break# 批量生成野怪
class Monsters:def __init__(self):self.mst_lt = []for i in range(1, 20):setattr(self, 'monster_%s' % i, Monster('腥红石像%s号' % i, 1000, attack=180, money=800, mon_name='BUFF'))self.mst_lt.append(eval('self.monster_%s' % i))# 批量生成英雄
class Heroes:def __init__(self):self.mst_lt = []for i in range(1, 10):setattr(self, 'hero_%s' % i, Hero('亚瑟%s号' % i, 1000, 100, 200, ocu_name='对抗路'))self.mst_lt.append(eval('self.hero_%s' % i))# 法师
class Rabbi(Hero):def __init__(self, name):super().__init__(name)pass# 射手
class Shooter(Hero):def __init__(self, name):super().__init__(name)pass# 战士
class Soldier(Hero):def __init__(self, name,):super().__init__(name)pass# 刺客
class Assassin(Hero):def __init__(self, name,):super().__init__(name)pass# 野怪反击
def back_atk():jug = 0  # 跳出循环的判定t = Nonewhile jug == 0:if len(monster.mst_lt) != 0:for mon in monster.mst_lt:if len(mon.vis_lt) != 0:if mon.vis_lt[0].life > 0:  # 只攻击最近的敌人t = threading.Thread(target=mon.fight)t.start()else:jug = 1t.join()if __name__ == '__main__':print('#' * 25 + ' welcome to 王者RY ' + '#' * 25 + '\n登录/回车进入:')monster = Monsters()hero1 = Rabbi('妲己')t1 = threading.Thread(target=hero1.mainloop)t2 = threading.Thread(target=back_atk)t1.start()t2.start()

我这个代码写的有多余的部分,其实是我还没有把它调用,比如武器,敌方英雄等等,但是老师给的作业我算是完成了。
还有一个问题就是,这是个自动的,唯一的交互就是改代码数值,当然你可以写个input()实现简单交互,哈哈。
不知道我这第一篇博客有没有人看,嘿嘿,有的话,欢迎提意见和问题。

Python类王者荣耀小游戏相关推荐

  1. Python写王者荣耀小游戏

    Python写王者荣耀小游戏 文章目录 Python写王者荣耀小游戏 说明: 一.socket创建 二.实现多进程 三.面向对象版本 四.主体部分搭建 1. 服务器主要步骤的实现 1-1主体部分 1- ...

  2. python自学篇十[ 面向对象 (四) :王者荣耀小游戏+模拟一个简单的银行进行业务办理的类]

    python基础系列: python自学篇一[ Anaconda3安装 ] python自学篇二[ pycharm安装及使用 ] python自学篇三[ 判断语句if的使用 ] python自学篇四[ ...

  3. Java实现王者荣耀小游戏(简单版,带有图片资源)

    这周是实践周,要写期末大作业.参考http://[[尚学堂]在家打王者,不如自己开发王者_开发Java游戏项目[王者荣耀]24小时搞定!!!腾讯游戏_java项目_java游戏开发_java实战项目_ ...

  4. Python实现王者荣耀小助手(二)

    接下来我们获取英雄和武器信息,详细代码KingGlory.py如下(代码中有详细注解): # -*- coding: utf-8 -*- #!/usr/bin/env python # @Time : ...

  5. 王者荣耀小游戏3.0更新完成!

    本人还是一个学生,刚放假10多天,所以今天才更新,请大家见谅 本次更新改动并不大,距离下次更新4.0应该还有很久 下面是我的关机 代码: #include<bits/stdc++.h> / ...

  6. 王者荣耀小游戏1.0震撼上线!C++版

    王者荣耀小游戏1.0版本!可以关机哦! #include<bits/stdc++.h> //编个游戏,不顾一切的用万能 #include<windows.h> using na ...

  7. 王者荣耀小游戏4.0

    大家好,我的王者荣耀小游戏有更新到4.0了 这次改动也不大 加了个键盘监听而已 下面是代码: #include<bits/stdc++.h> //编个游戏,不顾一切的用万能 #includ ...

  8. 王者荣耀小游戏(发给你的好兄弟(大怨种)^-^)

    代码如下 #include<bits/stdc++.h> #include<windows.h> using namespace std; char a; int main() ...

  9. Python实现王者荣耀小助手(一)

    简单来说网络爬虫,是指抓取万维网信息的程序或者脚本,Python在网络爬虫有很大优势,今天我们用Python实现获取王者荣耀相关数据,做一个小助手: 前期准备,环境搭建: Python2.7 sys模 ...

最新文章

  1. window for jdk install
  2. Php无刷新修改url,history 实现无刷新更改url和页面内容
  3. python 模拟鼠标键盘_python之模拟鼠标键盘动作
  4. 你最想要的圣诞礼物是什么?
  5. 关于DNS区域查询,DNS字典爆破,以及查询文件问题
  6. 前端知识点整理(三)不定时更新~
  7. fopen php 乱码,如何解决php fgets读取文件乱码的问题
  8. 爬了知乎200万数据,图说程序员都喜欢去哪儿工作~
  9. WEB测试总结 (架构,设计)精华部分(转)
  10. Shell脚本学习-阶段一
  11. 矩阵连乘问题C++实现
  12. 科技风杂志科技风杂志社科技风编辑部2022年第16期目录
  13. python 今日头条视频自动上传_抖音视频怎么上传到今日头条?这个软件可一键操作很方便...
  14. php避免超卖,thinkphp防止超卖
  15. Spark优化——推测执行机制
  16. 余压监控系统在某高层住宅的应用方案
  17. 手把手带你学python自动化测试(五)——鼠标键盘操作
  18. 交流电机是如何工作的
  19. Java面向对象编程——接口
  20. vue中的vxe-table中文文档

热门文章

  1. 入门级资料——电池的工作过程
  2. 据说比谷哥牛的搜索引擎
  3. 塑料制品行业市场产业集中度分析预测及经营状况可行性研究
  4. 对Jscript操作注册表接口的一点不解
  5. 10款Github上最火爆的国产开源项目
  6. Redis5搭建集群
  7. 实习日记 7.11
  8. 水果酒技术-山楂酒怎么做,山楂酒有几种制作方法
  9. Kamiya丨Kamiya艾美捷大鼠成纤维细胞生长因子2说明书
  10. 熔断器hystrix的使用