11153 kill boss

这个问题可以通过模拟游戏的过程来解决。我们可以遍历每一轮的出招,根据出招的规则来计算每一轮的伤害,并更新Acmer和Boss的血量。如果在某一轮结束后,Acmer的血量小于等于0,那么Boss赢;如果Boss的血量小于等于0,那么Acmer赢。如果所有的出招都结束后,两者的血量都大于0,那么输出"impossible"。

以下是使用C++的代码实现:

#include <iostream>
#include <vector>
using namespace std;

int main() {
    int n, m, d;
    cin >> n >> m >> d;
    vector<int> boss(d), acmer(d);
    for (int i = 0; i < d; ++i) {
        cin >> boss[i];
    }
    for (int i = 0; i < d; ++i) {
        cin >> acmer[i];
    }
    for (int i = 0; i < d; ++i) {
        if (boss[i] > 0 && acmer[i] > 0) {
            if (boss[i] > acmer[i]) {
                n -= boss[i];
            } else if (boss[i] < acmer[i]) {
                m -= acmer[i];
            }
        } else if (boss[i] > 0 && acmer[i] < 0) {
            if (boss[i] > -acmer[i]) {
                n -= boss[i];
            }
        } else if (boss[i] < 0 && acmer[i] > 0) {
            if (acmer[i] > -boss[i]) {
                m -= acmer[i];
            }
        }
        if (n <= 0) {
            cout << "boss\n";
            return 0;
        }
        if (m <= 0) {
            cout << "acmer\n";
            return 0;
        }
    }
    cout << "impossible\n";
    return 0;
}

在这段代码中,我们首先读取输入的Acmer和Boss的血量,以及出招的数目。然后我们读取Boss和Acmer的出招表。然后我们遍历每一轮的出招,根据出招的规则来计算每一轮的伤害,并更新Acmer和Boss的血量。如果在某一轮结束后,Acmer的血量小于等于0,那么我们输出"boss"并结束程序;如果Boss的血量小于等于0,那么我们���出"acmer"并结束程序。如果所有的出招都结束后,两者的血量都大于0,那么我们输出"impossible"。

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BOSS是一个游戏中的角色,acmer是玩家。在游戏中,acmer需要击败BOSS才能获胜。BOSS和acmer都有一套出招表,根据出招规律,他们会进行攻击和防守。如果acmer在被BOSS砍掉n滴血之前,能够砍掉BOSS m滴血,那么acmer就能赢得游戏。如果两者都不能赢,就输出"impossible"。\[3\] 根据给定的代码,我们可以看到,代码中使用了一个循环来判断acmer和BOSS的出招情况。如果acmer的出招和BOSS的出招相同,那么继续下一轮循环。如果acmer的出招加上BOSS的出招大于0,那么根据攻击系数的大小,决定是acmer还是BOSS受到伤害。如果acmer的血量小于等于0,那么输出"boss",表示BOSS获胜。如果BOSS的血量小于等于0,那么输出"acmer",表示acmer获胜。如果循环结束后,acmer和BOSS的血量都大于0,那么输出"impossible",表示无法确定胜负。\[2\] 综上所述,根据给定的出招表和规则,我们可以判断出acmer和BOSS谁能赢得游戏。 #### 引用[.reference_title] - *1* [设计模式 行为型模式 -- 备忘录模式 具体实例:游戏挑战BOSS](https://blog.csdn.net/I_r_o_n_M_a_n/article/details/121074782)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [11153 kill boss](https://blog.csdn.net/weixin_30470857/article/details/96922334)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值