使用面向对象思想,实现(人狗大战)小游戏
学习面向对象之后,练习使用面向对象思想,实现代码
# -*- 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("狗获得了胜利")
使用了随机攻击的方式,因此运行结果不一定相同
使用面向对象思想,实现(人狗大战)小游戏相关推荐
- python人狗大战游戏_day22 01 初识面向对象----简单的人狗大战小游戏
day22 01 初识面向对象----简单的人狗大战小游戏 假设有一个简单的小游戏:人狗大战 怎样用代码去实现呢? 首先得有任何狗这两个角色,并且每个角色都有他们自己的一些属性,比如任务名字nam ...
- 面向对象编程引入“人狗大战”小游戏
转载于:https://www.cnblogs.com/www-qcdwx-com/p/10435310.html
- python开发面向对象基础:人狗大战学面向对象
一,通过函数写人狗大战这个故事 1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 4 #1.函数 人模子 5 def person(name,level, ...
- Python 面向对象--人狗大战(教程)
可参考代码来方便学习 Python 面向对象--人狗大战(代码)_菜菜啾咪的博客-CSDN博客https://blog.csdn.net/hexiaan/article/details/1257225 ...
- 2018.11.19-day21 初识面向对象 VS 人狗大战
1.初识面向对象 2.人狗大战 转载于:https://www.cnblogs.com/studybrother/p/9985814.html
- Python面向对象游戏--人狗大战
# 项目实训 人狗大战 # 多个人 多条狗 多个属性 名字 种类 攻击力 生命力进行设值 # 先创狗 #数据太多了 依次复制太过复杂 这时候就可以写一个def然后整体调用更改数据即可attack_va ...
- 面向对象学习笔记1 - 人狗大战
人狗大战 - 人可以有多条狗,每条狗有不同的属性,如名字,品种,攻击力 - 可以有多个人,人有年龄,姓名等属性 - 狗可以咬人,人可以打狗 dog1 = {"dog_name":& ...
- Python 面向对象--人狗大战(代码)
项目实训 人狗大战 多个人,多条狗,多个品种,年龄,攻击力 attack_vals = {"二哈":20,"藏獒":70,"金毛":40 } ...
- python小白自学基础知识(二)附加(人狗大战游戏)
python小白自学基础知识(二) 1.计算列表内数字的累加和 这里用到functools模块,以及该模块下的reduce函数 语法:reduce(function1,list1) 注:functio ...
最新文章
- android ffmpeg 简书,偶遇FFmpeg(三)——Android集成
- git放弃本地修改,强制覆盖本地文件
- RocketMq namesvr 最佳实践
- AI在汽车中的应用:实用深度学习
- 家用电脑配置_家用电脑无需太高配置,不要听电脑店瞎忽悠,2500元机子够用了!...
- 前端学习(688):断点调试
- python 数字类型和字符串类型的相互转换_python 数字类型和字符串类型的相互转换...
- android 自定义属性 双向绑定,如何解决:“在使用自定义视图实现双向数据绑定时,找不到属性’android:text’”的getter?...
- java模式设计视频教程_全新JAVA设计模式详解视频教程 完整版课程
- Bootstrap 按钮的外观
- memcached +mysql+php 测试例子
- oracle 权限控制表,Oracle 用户权限管理与常用权限数据字典列表
- python多进程调试_使用pyrasite进行python进程调试,改变运行中进程的代码
- NOIP2015题解
- 手把手带你写 Vue 可视化拖拽页面编辑器
- C++取地址符用在函数的形参的优势
- 显卡更新显示计算机无法识别,显卡驱动更新不了怎么办 显卡驱动更新不了解决方法...
- 士不可以不弘毅,任重而道远!
- Matlab2018b新特性介绍以及R2018b+waijung blockst 百度云下载链接
- 电脑实时监控信息:CPU 内存 GPU使用率在桌面上动态展现
热门文章
- 基于Bert的文本情感分类
- 一览29省2020年5G建设计划
- nat123端口映射linux,nat123 linux版linux2.8安装启动教程
- 基于三菱Q系列PLC的CC-Link IE Field Basic的伺服总线控制系统硬件组态设置
- java 循环依赖_浅谈Spring解决循环依赖的三种方式
- oracle分区表复制,Oracle分区表(Partition Table)
- 《深入理解计算机系统》(原书第三版)家庭作业第三章(3.63)解答
- Codeblocks的安装与配置
- APP推广大渠道不给量,我们该怎么办?
- AMD 双核驱动、补丁、优化工具下载地址和安装方法