C++ 奥特曼打怪兽之类的实现(系列2)

题目描述
在实验《类定义》的基础,改进并实现游戏中的两个类:奥特曼类和怪兽类。使得两个类更加接近实际要求。

奥特曼说明如下:

  1. 为每个属性设置get方法,注意奥特曼所有属性都需要

  2. 初始化(利用构造函数完成初始化),参数是等级,等级与其他属性的关系:生命是等级10倍,攻击是等级3倍,金钱是等级的10倍,经验开始为0。

  3. 逃跑(escape),当生命不超过10点时,奥特曼将逃跑,逃跑将损失所有金钱,战斗结果为奥特曼失败(lose)

  4. 攻击(attack),(这个方法要参数么??),当攻击怪兽时,怪兽受到的伤害等于奥特曼攻击力。(本方法实际上就是怪兽被攻击,所以不一定需要实现)

  5. 被攻击(attacked),(这个方法要参数么??),当怪兽反击时,奥特曼受到的伤害等于怪兽攻击力的一半,即生命损失=怪兽攻击力值/2,取整处理

  6. 回复生命(restore),如果体力不支(生命低于50%但大于10点),每10个金钱可恢复1点生命值。只要有足够的钱,可以一直恢复,直到达到生命值上限(等级的10倍)。

  7. 胜利(win),(这个方法要参数么??),当怪兽生命小于等于0,战斗结果为奥特曼胜利(win),奥特曼将获得怪兽身上所有金钱和经验值。

  8. 升级(upgrade),战斗结束后,达到升级条件可以升级,条件是经验值不小于等级10倍。升级将扣除相应的经验值,生命满血,更新生命上限和攻击力。

  9. 显示状态(display),单行输出,格式如下:

    rank=等级 hp=生命 damage=攻击 exp=经验 money=金钱

怪兽说明如下:

  1. 为每个属性设置get方法。

  2. 初始化(利用构造函数完成初始化),参数是等级,等级与其他属性的关系:生命是等级20倍,攻击是等级2倍,金钱是等级的10倍,经验值是等级的10倍。

  3. 被攻击(attacked),(这个方法要参数么??),当奥特曼攻击时,怪兽受到的伤害等于奥特曼攻击力,即生命损失=奥特曼攻击力值

  4. 反击(fightback)当怪兽被反击后,如果怪兽不死,将进行反击(本方法实际上就是奥特曼被攻击,所以不一定需要实现)

  5. 显示状态(display),单行输出,格式如下:

    rank=等级 hp=生命 damage=攻击 exp=经验 money=金钱


请在main函数中实现奥特曼与怪兽的“只抽”,即1对1的战斗过程,具体步骤如下:

cin>>t; //表示有t个测试实例

while (t–) //每个实例就是奥特曼与怪兽的1对1战斗

{

  1. 输入奥特曼和怪兽的等级,并调用初始化方法进行对象初始化

  2. 输出奥特曼和怪兽状态,调用display方法,每行输出一个

  3. 设置战斗标志flag为true,启动战斗循环,具体如下:

while(flag) //当战斗未结束就继续

{ //奥特曼攻击1次,或者是怪兽被攻击1次

   if (怪兽没死)  //用怪兽生命来判断,用get方法啦{     //怪兽反击1次,或者是奥特曼被攻击1次if (奥特曼不必逃跑)           //用奥特曼生命来判断,用get方法啦//奥特曼回血,在方法中判断是否需要加血else{     //奥特曼逃跑,并输出"lose"并回车//输出奥特曼状态,调用display方法//设置flag为false,停止战斗}}else //怪兽死了{     //奥特曼胜利,并输出"win"并回车//输出奥特曼状态,调用display方法//设置flag为false,停止战斗}

}

}

输入
第一行先输入t表示有t个测试实例

接着t行输入奥特曼和怪兽的等级

输出
根据题目要求,每个实例输出4行结果:

头两行是奥特曼和怪兽的初始状态

第3行是战斗结果

第4行是奥特曼的最终状态

样例输入
2 5 5 5 10
样例输出
rank=5 hp=50 damage=15 exp=0 money=50
rank=5 hp=100 damage=10 exp=50 money=50
win
rank=6 hp=60 damage=18 exp=0 money=50
rank=5 hp=50 damage=15 exp=0 money=50
rank=10 hp=200 damage=20 exp=100 money=100
lose
rank=5 hp=5 damage=15 exp=0 money=0

#include<iostream>
#include <cstring>
using namespace std;
class Ultraman{private:int rank; // 等级 int hp;	 	//生命值 int damage;	//攻击力 int exp;	//经验	int money;	//钱 public:Ultraman(int);void display();	//展示实力 void escape();	//逃跑 void attacked(int);	//被攻击 void restore();	//补血 void win(int,int);		//胜利 void upgrade();	 //升级int get_rank();int get_hp();int get_damage();int get_exp();int get_money();
}; 
class Monster{private:int rank; // 等级 int hp;	 	//生命值 int damage;	//攻击力 int exp;	//经验	int money;	//钱 public:Monster(int);void attacked(int);	//被攻击 int get_rank();int get_hp();int get_damage();int get_exp();int get_money();void display(); 
};
Ultraman::Ultraman(int a){rank=a;hp=10*a;exp=0;damage=3*a;money=10*a;
}
int Ultraman::get_rank(){return rank;
}
int Ultraman::get_hp(){return hp;
}
int Ultraman::get_damage(){return damage;
}
int Ultraman::get_exp(){return	exp; 
}
int Ultraman::get_money(){return money;
}
//当生命不超过10点时,奥特曼将逃跑,逃跑将损失所有金钱
void Ultraman::escape(){ money=0;cout<<"lose"<<endl;
}
void Ultraman::win(int _exp,int _money){cout<<"win"<<endl;exp+=_exp;money+=_money; upgrade();
}
void Ultraman::attacked(int monster_damage){hp-=monster_damage/2;
}
void Ultraman::upgrade(){while(exp>=10*rank){exp-=10*rank;rank++;hp=rank*10;damage=rank*3;}
}
void Ultraman::restore(){while(hp<5*rank&&money>=10){hp++;money-=10;}
}
void Ultraman::display(){cout<<"rank="<<rank;cout<<" hp="<<hp;cout<<" damage="<<damage;cout<<" exp="<<exp;cout<<" money="<<money<<endl;
}Monster::Monster(int a){rank=a;hp=20*a;damage=a*2;money=10*a;exp=a*10;
}
int Monster::get_rank(){return rank;
}
int Monster::get_hp(){return hp;
}
int Monster::get_damage(){return damage;
}
int Monster::get_exp(){return	exp; 
}
int Monster::get_money(){return money;
}
void Monster::attacked(int ultraman_damage){hp-=ultraman_damage;
}
void Monster::display(){cout<<"rank="<<rank;cout<<" hp="<<hp;cout<<" damage="<<damage;cout<<" exp="<<exp;cout<<" money="<<money<<endl;
}int main()
{int lev,t,flag;cin>>t;while(t--){flag=true;cin>>lev;Ultraman Tiga(lev);	//迪迦奥特曼 cin>>lev;Monster  Viga(lev); //维迦怪兽 Tiga.display();Viga.display();while(flag){Viga.attacked(Tiga.get_damage());if(Viga.get_hp()>0){Tiga.attacked(Viga.get_damage());if(Tiga.get_hp()>10){if(Tiga.get_hp()<Tiga.get_rank()*5){Tiga.restore();}	}else{Tiga.escape();Tiga.display();flag=false; }}else{Tiga.win(Viga.get_exp(),Viga.get_money()); Tiga.display();flag=false; }}}return 0;
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/21295.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用C语言画一个Q版奥特曼

有一天原本平静的村庄突然受到不明寄生生命体的袭击&#xff01;“快逃&#xff01;”“可是……” 快找出怪兽玛格尼亚的弱点&#xff0c;欢迎收看迪迦奥特曼的下集大雾来了。 今天分享一个用C语言画Q版奥特曼的源码~ 用到的是easyx图形库绘图功能&#xff0c;所以需要下载安…

2023-热门ChatGPT解析及使用方法

什么是Chat GPT&#xff1f;我们能用它来干什么&#xff1f; Chat GPT是一款基于人工智能技术的自然语言处理模型&#xff0c;由OpenAI团队开发。它能够通过机器学习技术从海量文本数据中学习语言知识&#xff0c;实现自然语言生成、对话生成和语言理解等功能&#xff0c;使得…

何让ChatGPT自动生成内容,作为客户服务工作人员的回答话术?

该场景对应的关键词库&#xff08;13个&#xff09;&#xff1a; 产品知识、使用方法、售后服务、售后维修、支付方式、支付流程、产品购买、产品配送、客户投诉、客户建议、政策法规、使用注意事项、客服身份 提问模板&#xff1a; 1、客服团队一般需要回答几个方面的问题&…

2023爱分析 · 元宇宙厂商全景报告 | 爱分析报告

报告编委 黄勇 爱分析合伙人&首席分析师 文鸿伟 爱分析高级分析师 目录 1. 研究范围定义 2. 市场洞察 3. 厂商全景地图 4. 市场分析与厂商评估 5. 入选厂商列表 1. 研究范围定义 研究范围 2021年3月&#xff0c;十四五规划中首次提及元宇宙&#xff0c;指…

字节跳动 CEO 梁汝波发内部信:头条、西瓜、搜索等业务并入抖音

2021 年 11 月 2 日&#xff0c;字节跳动 CEO 梁汝波发布一则内部信&#xff0c;重磅宣布根据业务需要进行的组织结构优化和升级举措&#xff0c;以抖音、教育、飞书、火山引擎、朝夕光年、TikTok 六大业务板块为依托&#xff0c;遵循“紧密配合的业务和团队合并为业务板块&…

【报告分享】ChatGPT:AI模型框架研究.pdf(附下载链接)

省时查报告-专业、及时、全面的行研报告库 省时查方案-专业、及时、全面的营销策划方案库 【免费下载】2023年2月份热门报告合集 【限时免费】ChatGPT4体验&#xff0c;无需翻墙直接用 ChatGPT团队背景研究报告 ChatGPT的发展历程、原理、技术架构及未来方向 ChatGPT使用总结&a…

ChatGPT 用redis实现分布式锁

背景 打算基于springboot、RedisTemplate&#xff0c;由ChatGPT来实现分布式锁&#xff0c;记录全过程。 基础介绍 基于RedisTemplate实现分布式锁 基于springboot及RedisTemplate实现分布式锁 在Spring Boot中&#xff0c;我们可以通过RedisTemplate来使用Redis的分布式锁机…

gpt人工智能写论文怎么样-chatGTP如何写论文

用gpt写论文怎么样 使用 GPT 写论文具体的操作方法因人而异&#xff0c;但可以提供一些建议&#xff1a; 充分理解论文的题目、主题和结构&#xff0c;并确定论文所需的内容和方向。 针对论文的不同部分&#xff0c;使用 GPT 模型进行自动化生成或补充&#xff0c;例如摘要、…

GPT-4 还没玩透,GPT-5已遭众人围剿

GPT-4 火爆全球&#xff0c;引发了人工智能大浪潮。OpenAI、微软、谷歌、百度都在不断释放王炸&#xff0c;所有人都相信&#xff0c;AI 的就是未来的生产力。 网友们在体验了性能炸裂的GPT-4之后&#xff0c;显然已经迫不及待地等着GPT-5的到来了。据报道 GPT-5 将于今年冬天…

人工智能开源系统,独立版本开发,国内服务器部署

Chatgpt是最近爆火的一个话题&#xff0c;可以通过人工智能&#xff0c;编辑生成自己想要的文案或者文章&#xff0c;但是由于防火墙的限制&#xff0c;国内无法直接访问&#xff0c;针对此问题我们开发出一套此功能的系统&#xff0c;。 源码下载&#xff1a;http://c.nxw.so/…

AIGPT中文版(人人都能使用的GPT工具)生活工作的好帮手。

AIGPT简介 AIGPT是一款非常强大的人工智能技术的语言处理工具软件&#xff0c;它具有 AI绘画 功能、AI写作、写论文、写代码、哲学探讨、创作等功能&#xff0c;可以说是生活和工作中的好帮手。 我们都知道使用ChatGPT是需要账号以及使用魔法的&#xff0c;其中的每一项对我们…

AIGPT中文版(无需魔法,直接使用)不愧是生活工作的好帮手。

AIGPT AIGPT是一款非常强大的人工智能技术的语言处理工具软件&#xff0c;它具有 AI绘画 功能、AI写作、写论文、写代码、哲学探讨、创作等功能&#xff0c;可以说是生活和工作中的好帮手。 我们都知道使用ChatGPT是需要账号以及使用魔法的&#xff0c;其中的每一项对我们初学…

AIGPT中文版(无需魔法,直接使用)安装使用教程

AIGPT是一款非常强大的人工智能技术的语言处理工具软件&#xff0c;它具有AI绘画功能、AI写作、写论文、写代码、哲学探讨、创作等功能&#xff0c;可以说是生活和工作中的好帮手。 我们都知道使用ChatGPT是需要账号以及使用魔法的&#xff0c;其中的每一项对我们初学者来说都是…

寻找新的 AI 应用程序和 ChatGPT 工具的前 5 个网站

人工智能 &#xff08;AI&#xff09; 改变了我们生活的方方面面&#xff0c;从提高生产力到彻底改变客户体验。随着人工智能的日益普及&#xff0c;对能够利用其潜力的可靠工具和服务的需求也在不断增长。幸运的是&#xff0c;有专门的平台可以作为宝贵的资源&#xff0c;指导…

图像分割领域的GPT-4.0,分割一切的AI算法:Segment Anything

一、图像分割领域的GPT-4.0 大家好,我是千与千寻,今天给大家介绍的AI算法可以称得上是图像分割领域的GPT-4.0,号称可以分割一切的AI图像分割算法——Segment Anything。 提到GPT-4.0模型,相信不必我多说,大家都不会陌生,最近实在是太火爆了,大家应该也都体验过ChatGPT那…

白泽AI:通过GPT镜像站有望打造令人兴奋的文字游戏体验

白泽AI是一个基于ChatGPT的镜像站&#xff0c;它有着巨大的潜力来通过GPT技术打造出令人兴奋的文字游戏功能。 借助GPT的强大生成能力&#xff0c;白泽AI可以创建一个虚拟世界&#xff0c;让玩家沉浸其中。这个文字游戏将提供一个广阔而自由的环境&#xff0c;在那里玩家可以探…

一定能看懂的:教你如何搭建自己的嘴臭AI,实现嘴臭GPT!包看包会!简单明了!

先看一下效果&#xff0c;我搭建了自己的GPT网页&#xff0c;可以指定角色&#xff0c;于是看到了之前new bing的效果&#xff1a; 首先在自己的python环境下安装依赖&#xff1a; pip install openai 在openai api官方查找到自己的openai api key 点击自己的头像&#xff0c…

「草柴」中国版ChatGPT AI:百度文心一言将开启第一批内测怎么申请获得内测邀请激活码?

2023年3月16日 14:00百度文心一言新闻发布会开始&#xff0c;在会议上百度创始人、董事长兼首席执行官李彦宏及百度首席技术官王海峰出席&#xff0c;并针对百度文心一言的使用场景与百度文心一言的技术架构进行了介绍。同时&#xff0c;百度文心一言开启内测&#xff0c;获得内…

AIPRM for ChatGPT 是一个 Chrome 浏览器扩展程序

AIPRM for ChatGPT 是一个 Chrome 浏览器扩展程序&#xff0c;基于 Chromium 内核开发的浏览器&#xff0c;都可以使用该扩展&#xff0c;比如微软的 Edge 浏览器等。 在 AIPRM 的帮助下&#xff0c;我们可以在 ChatGPT 中一键使用各种专门为网站 SEO、SaaS、营销、艺术、编程…

Chatgpt之下最好用的AI网站

Poe 是一款同时整合了 ChatGPT、Sage、GPT-4、Claude、Claude-instant 和 NeevaAI 的网站&#xff0c;也是目前在下使用体验很不错的一个网站。以上的机器人除了 GPT-4&#xff08;每天一次&#xff09;和 Claude&#xff08;每天三次&#xff09; 有使用次数限制以外&#xff…