当前位置: 首页 > news >正文

c++作业7

 

模拟一个游戏场景
    有一个英雄:初始所有属性为1
    atk,def,apd,hp

    游戏当中有以下3种武器
    长剑Sword: 装备该武器获得 +1atx,+1def
    短剑Blade: 装备该武器获得 +1atk,+1spd
    斧头Axe:   装备该武器获得 +1atk,+1hp

    要求英雄写一个函数:
    equipweapon 装备武器
    实现效果:装备不同武器英雄获得不同的属性加成

/*有一个英雄:初始所有属性为1
atk,def,spd,hp
游戏当中有以下3种武器
长剑Sword:装备该武器获得+1atk,+1def
短剑Blade:装备该武器获得+1atk,+1spd
斧头Axe:装备该武器获得+1atk,+1hp*/
#include <iostream>using namespace std;
class Hero;
class Weapon
{
public:int atk;Weapon():atk(1){}virtual void update(Hero &h);int get_atk1();virtual ~Weapon(){}
};class Sword:public Weapon
{int def;
public:Sword():def(1){}void update(Hero &h);
};class Blade:public Weapon
{int spd;
public:Blade():spd(1){}void update(Hero &h);
};class Aex:public Weapon
{int hp;
public:Aex():hp(1){}void update(Hero &h);
};class Hero
{int atk;int def;int spd;int hp;public:Hero():atk(1),def(1),spd(1),hp(1){}void set_atk(int atk);void set_def(int def);void set_spd(int spd);void set_hp(int hp);int get_atk();int get_def();int get_spd();int get_hp();void updateWeapon(Weapon *w);void show();
};
void Hero::set_atk(int atk)
{this->atk=atk;
}
void Hero::set_def(int def)
{this->def=def;
}
void Hero::set_spd(int spd)
{this->spd=spd;
}
void Hero::set_hp(int hp)
{this->hp=hp;
}
int Hero::get_atk()
{return this->atk;
}
int Hero::get_def()
{return this->def;
}
int Hero::get_spd()
{return this->spd;
}
int Hero::get_hp()
{return this->hp;
}
void Weapon::update(Hero &h)
{int new_atk=h.get_atk()+this->atk;h.set_atk(new_atk);
}void Sword::update(Hero &h)
{Weapon::update(h);int new_def=h.get_def()+this->def;h.set_def(new_def);
}void Blade::update(Hero &h)
{Weapon::update(h);int new_spd=h.get_spd()+this->spd;h.set_spd(new_spd);
}void Aex::update(Hero &h)
{Weapon::update(h);int new_hp=h.get_hp()+this->hp;h.set_hp(new_hp);
}
void Hero::updateWeapon(Weapon *w)
{w->update(*this);delete w;
}
void Hero::show()
{cout<<"atk="<<atk<<endl;cout<<"def="<<def<<endl;cout<<"spd="<<spd<<endl;cout<<"hp="<<hp<<endl;
}
int main()
{Hero h1,h2,h3;h1.updateWeapon(new Sword);h2.updateWeapon(new Blade);h3.updateWeapon(new Aex);h1.show();h2.show();h3.show();return 0;
}

相关文章:

c++作业7

模拟一个游戏场景 有一个英雄&#xff1a;初始所有属性为1 atk,def,apd,hp 游戏当中有以下3种武器 长剑Sword&#xff1a; 装备该武器获得 1atx&#xff0c;1def 短剑Blade&#xff1a; 装备该武器获得 1atk&#xff0c;1spd 斧头Axe&#xff1a; 装备该…...

vue 上传组件 vxe-upload 实现拖拽调整顺序

vue 上传组件 vxe-upload 实现拖拽调整顺序&#xff0c;通过设置 drag-sort 参数就可以启用拖拽排序功能 官网&#xff1a;https://vxeui.com/ 图片拖拽排序 <template><div><vxe-upload v-model"imgList" mode"image" multiple drag-sor…...

Windows 环境实战开源项目GFPGAN 教程

GFPGAN GFPGAN&#xff08;Generative Facial Prior-GAN&#xff09;是由腾讯ARC&#xff08;Applied Research Center&#xff09;开发的一种实用的真实世界人脸修复算法。它专门设计用于人脸图像的生成和优化&#xff0c;尤其在低质量人脸图像的超分辨率恢复方面表现出色。以…...

UE5 做简单的风景观光视频

A、思路 新建摄像机&#xff0c;关卡序列&#xff0c; 镜头试拍录制器&#xff0c;新建镜头轨道&#xff0c;拖入摄像机&#xff0c; 变换&#xff0c;设置多个关键帧&#xff0c;改变摄像机在场景中的位置&#xff0c; 完成后&#xff0c;导出即可。 B、参考图...

k8s服务搭建与实战案例

Kubernetes&#xff08;K8s&#xff09;作为一个开源的容器编排平台&#xff0c;广泛应用于现代的云原生应用架构中。以下是一些常见的 **Kubernetes 实战案例**&#xff0c;包括从基础部署到高级应用场景的使用。通过这些案例&#xff0c;可以更好地理解 K8s 的运作原理和最佳…...

JavaScript学习难点

一、语法的灵活性 动态类型&#xff1a; JavaScript 是一种动态类型语言&#xff0c;这意味着变量的类型可以在运行时改变。这与静态类型语言&#xff08;如 Java、C&#xff09;形成鲜明对比&#xff0c;在静态类型语言中&#xff0c;变量的类型在编译时就已经确定。 例如&am…...

Qt WORD/PDF(一)使用 QtPdfium库实现 PDF 预览

文章目录 一、简介二、下载 QtPdfium三、加载 QtPdfium 动态库四、Demo 使用 关于QT Widget 其它文章请点击这里: QT Widget 姊妹篇: Qt WORD/PDF&#xff08;一&#xff09;使用 QtPdfium库实现 PDF 操作 Qt WORD/PDF&#xff08;二&#xff09;使用 QtPdfium库实现…...

解决创建laravel项目,使用国外镜像超时,国内镜像缺包的问题

解决创建laravel项目&#xff0c;使用国外镜像超时&#xff0c;国内镜像缺包的问题 一、前言二、切换镜像三、创建最新版本四、创建指定版本 一、前言 最近想下载 laravel 框架看看&#xff0c;但也遇到了些麻烦&#xff0c;这里做个记录。 二、切换镜像 先查看镜像源&#…...

Java泛型设计详解

引言 在日常Java开发中&#xff0c;泛型是一个非常重要的特性。它提供了编译时的类型安全检查&#xff0c;增强了代码的可读性和可维护性。然而&#xff0c;对于初学者甚至一些有经验的开发者来说&#xff0c;泛型的使用和理解仍然是一个挑战。本文旨在深入探讨Java泛型的诞生…...

用ue5打开网址链接

需要用到 Launch URL 这个函数 字面意思就是打开填写的链接网页 这里填写的是百度&#xff0c;按下Tab键后就会打开百度的网页...

【大数据】-- 读放大和写放大

目录 一、定义 1. 读放大(Read Amplification) 定义 原因 优化方法 2. 写放大(Write Amplification) 定义 原因 优化方法 对比与联系 二、举例 1. Hadoop(HDFS) 读放大 写放大 2. Flink 读放大 写放大 3. Hive 读放大 写放大 4. Presto 读放大 写放…...

【前端】JavaScript 抽取字符串特定部分题目详解与实现思路

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: 前端 文章目录 &#x1f4af;前言&#x1f4af;题目描述&#x1f4af;核心步骤与实现解析1. 分割字符串为数组&#xff08;split 方法&#xff09;2. 使用 filter 提取名字&#xff08;偶数索引判断&#xff09;3. 使…...

CNCF云原生生态版图-分类指南(一)- 观测和分析

CNCF云原生生态版图-分类指南&#xff08;一&#xff09;- 观测和分析 CNCF云原生生态版图-分类指南一、观测和分析&#xff08;Observability and Analysis&#xff09;&#xff08;一&#xff09;可观测性&#xff08;Observablility&#xff09;1. 是什么&#xff1f;2. 解决…...

热更新解决方案3 —— xLua

概述 xLua框架导入和AB包相关准备 xLua导入 其它的导入 C#调用Lua 1.Lua解析器 using System.Collections; using System.Collections.Generic; using UnityEngine; //引用命名空间 using XLua;public class Lesson1_LuaEnv : MonoBehaviour {// Start is called before the fi…...

如何让ai在游戏中更像一个人?

开题开了一整年是我没想到的&#xff0c;还因此延毕了……我重新梳理一下我想做的研究以及相关痕迹。 我2023年3月找到的导师。起初我发现了在玩RTS游戏中会出现很多固定的套路&#xff0c;选手为此要做大量的练习&#xff0c;我就在想如何把这部分内容借助状态机这种流程给…...

websocket_asyncio

WebSocket 和 asyncio 指南 简介 本指南涵盖了使用 Python 中的 websockets 库进行 WebSocket 编程的基础知识&#xff0c;以及 asyncio 在异步非阻塞 I/O 中的作用。它提供了构建高效 WebSocket 服务端和客户端的知识&#xff0c;以及 asyncio 的特性和优势。 1. 什么是 WebS…...

如何在NGINX中实现基于IP的访问控制(IP黑白名单)?

大家好&#xff0c;我是锋哥。今天分享关于【如何在NGINX中实现基于IP的访问控制&#xff08;IP黑白名单&#xff09;&#xff1f;】面试题。希望对大家有帮助&#xff1b; 如何在NGINX中实现基于IP的访问控制&#xff08;IP黑白名单&#xff09;&#xff1f; 1000道 互联网大…...

Y3编辑器文档4:触发器1(界面及使用简介、变量作用域、入门案例)

文章目录 一、触发器简介1.1 触发器界面1.2 ECA语句编辑及快捷键1.3 参数设置1.4 变量设置1.5 实体触发器1.6 触发器复用 二、触发器的多层结构2.1 子触发器&#xff08;在游戏内对新的事件进行注册&#xff09;2.2 触发器变量作用域 三、入门案例3.1 使用触发器实现瞬间移动3.…...

echarts图表自定义配置(二)——代码封装

下图是初版&#xff0c;火山图的代码。可以看出&#xff0c;里面的变量&#xff0c;逻辑&#xff0c;函数存在冗余&#xff0c;基本上都是改了参数&#xff0c;同样的get和set&#xff0c;去刷新图表&#xff1b;对于往后继续开发十几二十个图表&#xff0c;会很麻烦。因此需要…...

02、10个富士胶片模拟的设置

二色彩 1、色彩的加减控制全局的饱和度增减&#xff1b; 2、色彩效果只提升暖色系饱和度&#xff1b; 3、FX蓝色大幅度提升蓝色系饱和度&#xff1b; 4、三个参数都不改变颜色的色相。 2.1 色彩 色彩调整的是拍摄画面整体的色彩饱和程度 2.2色彩效果 调整的是画面中暖色…...

安卓音频问题解决记录(一)

本文记录在安卓framework开发过程中遇到的一些音频问题的解决办法。 1.支持多应用同时录音(安卓10以上) 通过日志分析,发现当另一个应用打开录音的时候会被静音,日志如下: APM_AudioPolicyManager: setAppState(portId:43, state:2) APM_AudioPolicyManager: set…...

AI建站工具怎么选?一篇讲透选型标准与对比逻辑

面对市面上五花八门的“智能建站”、“免代码建站”宣传&#xff0c;很多人越看越糊涂&#xff1a;到底哪个才是真的适合我&#xff1f;是选AI自动生成的&#xff0c;还是拖拽式更灵活&#xff1f;这篇不直接给答案&#xff0c;而是先提供一套通用的筛选标准&#xff0c;再帮你…...

数据仓库建模:事实表类型详解与选型实战指南

数据仓库建模&#xff1a;事实表类型详解与选型实战指南一、引言二、定义&#xff1a;什么是数据仓库事实表&#xff1f;三、数据仓库中三大核心事实表类型3.1 类型1&#xff1a;事务事实表&#xff08;Transaction Fact Table&#xff09;3.2 类型2&#xff1a;周期快照事实表…...

新手入门网络安全:用快马AI生成你的第一个密码强度检测器

最近在自学网络安全基础知识&#xff0c;发现密码强度检测是个很好的入门实践。作为新手&#xff0c;我尝试用InsCode(快马)平台的AI辅助功能&#xff0c;快速生成了一个密码强度检测器&#xff0c;整个过程特别适合零基础学习者。这里记录下实现思路和关键要点&#xff1a; 密…...

基于YOLOv11深度学习的车辆碰撞检测系统(YOLOv11+YOLO数据集+UI界面+登录注册界面+Python项目源码+模型)

一、项目介绍 随着城市交通密度的不断增加&#xff0c;交通事故尤其是车辆碰撞事件的频发对公共安全构成了严重威胁。传统的交通监控手段主要依赖人工查看监控视频&#xff0c;存在效率低下、实时性差以及容易因疲劳导致漏报等问题。 为了解决这一痛点&#xff0c;本项目基于…...

用风水学重构代码:周易卦象优化系统架构

在软件工程领域&#xff0c;系统架构的优化与性能调优一直是技术专家们不懈探索的核心课题。传统的优化思路往往聚焦于算法效率、资源调度、中间件配置等技术维度。然而&#xff0c;一个更具颠覆性的视角正在悄然兴起&#xff1a;将源自古老东方智慧的《周易》卦象体系&#xf…...

SEO工具如何提供网站的整体优化建议

SEO工具如何提供网站的整体优化建议 在当今竞争激烈的互联网市场中&#xff0c;网站的整体优化是每一个企业和个人网站的重要任务。SEO工具在这一过程中扮演着不可或缺的角色。SEO工具如何提供网站的整体优化建议呢&#xff1f;本文将从问题分析、原因说明、解决方法、注意事项…...

Qwen3-TTS声音设计模型5分钟快速部署:10种语言语音合成一键搞定

Qwen3-TTS声音设计模型5分钟快速部署&#xff1a;10种语言语音合成一键搞定 1. 为什么选择Qwen3-TTS声音设计模型&#xff1f; 1.1 用自然语言"设计"声音&#xff0c;不是选择音色 传统语音合成工具通常提供固定音色库&#xff0c;而Qwen3-TTS的VoiceDesign功能允…...

OpenClaw二次开发:修改Qwen3-4B的prompt模板提升效果

OpenClaw二次开发&#xff1a;修改Qwen3-4B的prompt模板提升效果 1. 为什么要修改prompt模板&#xff1f; 第一次使用OpenClaw对接Qwen3-4B模型时&#xff0c;我发现默认的prompt模板在处理复杂任务时经常出现"任务拆解不完整"或"工具调用顺序混乱"的问题…...

Stable Yogi Leather-Dress-Collection企业应用:服装品牌AI趋势图快速验证系统

Stable Yogi Leather-Dress-Collection企业应用&#xff1a;服装品牌AI趋势图快速验证系统 1. 项目概述 Stable Yogi Leather-Dress-Collection是一款专为服装品牌设计的AI趋势图快速验证工具&#xff0c;基于先进的Stable Diffusion技术开发。这个工具能够帮助设计师和品牌快…...