学习面向对象之后,练习使用面向对象思想,实现代码

⼈狗⼤站,2个⻆⾊,⼈和狗,游戏开始后,⽣成2个⼈,3条狗,互相混战,⼈被狗咬了会掉⾎,狗被⼈打了也掉⾎,狗和⼈的攻击⼒,具备的 功能都不⼀样。
类:⼈
属性:⼈:攻击⼒(打)、⽣命值(⾎)
⽅法:打
类:狗;
属性:攻击⼒(咬)、⽣命值(⾎)
⽅法:咬
# -*- coding: utf-8 -*-
# @File : 面向对象小游戏.py
# 描述 : 人狗大战
# @Time : 2020/6/3 16:27
# @Author : 崔
# @versions : 1.0
from random import randintclass Person:def __init__(self, name, aggressivity, hp):   # 姓名 攻击力 生命值self.name = nameself.aggressivity = aggressivityself.hp = hpdef attack(self, dog):atk = randint(0, self.aggressivity)if dog.hp > atk:dog.hp -= atkprint(f"{self.name}打了{dog.name}一下")else:dog.hp -= atkprint(f"{dog.name}死翘翘了")class Dog:def __init__(self, name, aggressivity, hp):self.name = nameself.aggressivity = aggressivityself.hp = hpdef attack(self, person):atk = randint(0, self.aggressivity)  # 随机的攻击力if person.hp > atk:person.hp -= atkprint(f"{self.name}咬了{person.name}一下")else:person.hp -= atkprint(f"{person.name}被咬死了")person = [Person("张三", 9, 100), Person("李四", 9, 100), Person("王二", 9, 100)]
dogs = [Dog("豆豆", 20, 60), Dog("贝贝", 20, 90)]while len(person) > 0 and len(dogs) > 0:person[randint(0, len(person) - 1)].attack(dogs[randint(0, len(dogs) - 1)])for i in range(len(dogs) - 1, -1, -1):if dogs[i].hp <= 0:dogs.pop(i)  # 将已死的狗从列表中删除if len(dogs) <= 0:breakdogs[randint(0, len(dogs) - 1)].attack(person[randint(0, len(person) - 1)])for i in range(len(person) - 1, -1, -1):if person[i].hp <= 0:person.pop(i)   # 将已死的人从列表中删除if len(person) > 0:print("人获得了胜利")
else:print("狗获得了胜利")

使用了随机攻击的方式,因此运行结果不一定相同

使用面向对象思想,实现(人狗大战)小游戏相关推荐

  1. python人狗大战游戏_day22 01 初识面向对象----简单的人狗大战小游戏

    day22 01 初识面向对象----简单的人狗大战小游戏 假设有一个简单的小游戏:人狗大战   怎样用代码去实现呢? 首先得有任何狗这两个角色,并且每个角色都有他们自己的一些属性,比如任务名字nam ...

  2. 面向对象编程引入“人狗大战”小游戏

    转载于:https://www.cnblogs.com/www-qcdwx-com/p/10435310.html

  3. python开发面向对象基础:人狗大战学面向对象

    一,通过函数写人狗大战这个故事 1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 4 #1.函数 人模子 5 def person(name,level, ...

  4. Python 面向对象--人狗大战(教程)

    可参考代码来方便学习 Python 面向对象--人狗大战(代码)_菜菜啾咪的博客-CSDN博客https://blog.csdn.net/hexiaan/article/details/1257225 ...

  5. 2018.11.19-day21 初识面向对象 VS 人狗大战

    1.初识面向对象 2.人狗大战 转载于:https://www.cnblogs.com/studybrother/p/9985814.html

  6. Python面向对象游戏--人狗大战

    # 项目实训 人狗大战 # 多个人 多条狗 多个属性 名字 种类 攻击力 生命力进行设值 # 先创狗 #数据太多了 依次复制太过复杂 这时候就可以写一个def然后整体调用更改数据即可attack_va ...

  7. 面向对象学习笔记1 - 人狗大战

    人狗大战 - 人可以有多条狗,每条狗有不同的属性,如名字,品种,攻击力 - 可以有多个人,人有年龄,姓名等属性 - 狗可以咬人,人可以打狗 dog1 = {"dog_name":& ...

  8. Python 面向对象--人狗大战(代码)

    项目实训 人狗大战 多个人,多条狗,多个品种,年龄,攻击力 attack_vals = {"二哈":20,"藏獒":70,"金毛":40 } ...

  9. python小白自学基础知识(二)附加(人狗大战游戏)

    python小白自学基础知识(二) 1.计算列表内数字的累加和 这里用到functools模块,以及该模块下的reduce函数 语法:reduce(function1,list1) 注:functio ...

最新文章

  1. android ffmpeg 简书,偶遇FFmpeg(三)——Android集成
  2. git放弃本地修改,强制覆盖本地文件
  3. RocketMq namesvr 最佳实践
  4. AI在汽车中的应用:实用深度学习
  5. 家用电脑配置_家用电脑无需太高配置,不要听电脑店瞎忽悠,2500元机子够用了!...
  6. 前端学习(688):断点调试
  7. python 数字类型和字符串类型的相互转换_python 数字类型和字符串类型的相互转换...
  8. android 自定义属性 双向绑定,如何解决:“在使用自定义视图实现双向数据绑定时,找不到属性’android:text’”的getter?...
  9. java模式设计视频教程_全新JAVA设计模式详解视频教程 完整版课程
  10. Bootstrap 按钮的外观
  11. memcached +mysql+php 测试例子
  12. oracle 权限控制表,Oracle 用户权限管理与常用权限数据字典列表
  13. python多进程调试_使用pyrasite进行python进程调试,改变运行中进程的代码
  14. NOIP2015题解
  15. 手把手带你写 Vue 可视化拖拽页面编辑器
  16. C++取地址符用在函数的形参的优势
  17. 显卡更新显示计算机无法识别,显卡驱动更新不了怎么办 显卡驱动更新不了解决方法...
  18. 士不可以不弘毅,任重而道远!
  19. Matlab2018b新特性介绍以及R2018b+waijung blockst 百度云下载链接
  20. 电脑实时监控信息:CPU 内存 GPU使用率在桌面上动态展现

热门文章

  1. 基于Bert的文本情感分类
  2. 一览29省2020年5G建设计划
  3. nat123端口映射linux,nat123 linux版linux2.8安装启动教程
  4. 基于三菱Q系列PLC的CC-Link IE Field Basic的伺服总线控制系统硬件组态设置
  5. java 循环依赖_浅谈Spring解决循环依赖的三种方式
  6. oracle分区表复制,Oracle分区表(Partition Table)
  7. 《深入理解计算机系统》(原书第三版)家庭作业第三章(3.63)解答
  8. Codeblocks的安装与配置
  9. APP推广大渠道不给量,我们该怎么办?
  10. AMD 双核驱动、补丁、优化工具下载地址和安装方法