c语言炉石传说算法设计,CCF-CSP题解 201609-3 炉石传说

模拟。

注意随从的编号在\(summon\)和\(attack\)随从死亡时都可能改变。

#include

using namespace std;

struct tNode

{

int attack;

int health;

};

tNode aPlayer[8];

tNode bPlayer[8];

int aM = 0, bM = 0;

int aHealth = 30, bHealth = 30;

int main()

{

int n;

scanf("%d", &n);

int player = 1;

char op[30];

while (n--)

{

scanf("%s", op);

if (op[0] == 's')

{

int pos, attack, health;

scanf("%d%d%d", &pos, &attack, &health);

if (player == 1)

{

for (int i = aM + 1; i >= pos + 1; i--)

aPlayer[i] = aPlayer[i - 1];

aPlayer[pos].attack = attack;

aPlayer[pos].health = health;

aM++;

}

else

{

for (int i = bM + 1; i >= pos + 1; i--)

bPlayer[i] = bPlayer[i - 1];

bPlayer[pos].attack = attack;

bPlayer[pos].health = health;

bM++;

}

}

else if (op[0] == 'a')

{

int attacker, defender;

scanf("%d%d", &attacker, &defender);

if (player == 1)

{

if (defender == 0)

{

bHealth -= aPlayer[attacker].attack;

}

else

{

aPlayer[attacker].health -= bPlayer[defender].attack;

bPlayer[defender].health -= aPlayer[attacker].attack;

if (aPlayer[attacker].health <= 0)

{

for (int i = attacker; i <= aM - 1; i++)

aPlayer[i] = aPlayer[i + 1];

aM--;

}

if (bPlayer[defender].health <= 0)

{

for (int i = defender; i <= bM - 1; i++)

bPlayer[i] = bPlayer[i + 1];

bM--;

}

}

}

else

{

if (defender == 0)

{

aHealth -= bPlayer[attacker].attack;

}

else

{

aPlayer[defender].health -= bPlayer[attacker].attack;

bPlayer[attacker].health -= aPlayer[defender].attack;

if (aPlayer[defender].health <= 0)

{

for (int i = defender; i <= aM - 1; i++)

aPlayer[i] = aPlayer[i + 1];

aM--;

}

if (bPlayer[attacker].health <= 0)

{

for (int i = attacker; i <= bM - 1; i++)

bPlayer[i] = bPlayer[i + 1];

bM--;

}

}

}

}

else

{

player *= -1;

}

}

if (aHealth <= 0 || bHealth <= 0)

printf("%d\n", player);

else

printf("0\n");

printf("%d\n", aHealth);

printf("%d", aM);

for (int i = 1; i <= aM; i++)

printf(" %d", aPlayer[i].health);

printf("\n");

printf("%d\n", bHealth);

printf("%d", bM);

for (int i = 1; i <= bM; i++)

printf(" %d", bPlayer[i].health);

printf("\n");

return 0;

}

CCF CSP 201609-3 炉石传说

CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201609-3 炉石传说 问题描述 (Hearthston ...

CCF 炉石传说&lpar;模拟&rpar;

试题编号: 201612-3 试题名称: 炉石传说 时间限制: 1.0s 内存限制: 256.0MB 问题描述 (Hearthstone: Heroes of Wa ...

炉石传说&lowbar;&lowbar;multiset

炉石传说  Problem Description GG学长虽然并不打炉石传说,但是由于题面需要他便学会了打炉石传说.但是传统的炉石传说对于刚入门的GG学长来说有点复杂,所以他决定自己开发一个简化版 ...

CCF CSP 201703-3 Markdown

CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201703-3 Markdown 问题描述 Markdown 是一种很流行的轻量级标记语言(l ...

CCF CSP 201312-3 最大的矩形

CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201312-3 最大的矩形 问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i( ...

CCF CSP 201403-3 命令行选项

CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201403-3 命令行选项 问题描述 请你写一个命令行分析程序,用以分析给定的命令行里包含哪些 ...

CCF CSP 201709-4 通信网络

CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201709-4 通信网络 问题描述 某国的军队由N个部门组成,为了提高安全性,部门之间建立了M ...

CCF CSP 201409-3 字符串匹配

CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201409-3 字符串匹配 问题描述 给出一个字符串和多行文字,在这些文字中找到字符串出现的那 ...

CCF CSP 201503-3 节日

CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201503-3 节日 问题描述 有一类节日的日期并不是固定的,而是以“a月的第b个星期c”的形 ...

CCF CSP 201509-2 日期计算

CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201509-2 日期计算 问题描述 给定一个年份y和一个整数d,问这一年的第d天是几月几日? ...

随机推荐

action和servlet的关系

在struts2.0中,可以通过ServletActionContext.getRequest()获取request对象. 在action的方法中return一个字符串,该字符串对应struts. ...

cmd 更改字体

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont,在右面找到936值双击打开,数 ...

mac 下真机调试 android 手机

第一步: 查看usb设备信息 在 终端输入:system_profiler SPUSBDataType     可以查看连接的usb设备的信息 比如我的usb信息如下(部分内容): Spreadtru ...

wiki oi 1044 拦截导弹

题目描述 Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某 ...

用Visual Studio Code Debug世界上最好的语言

前言 这阵子因缘巧合接手了一个辣鸡项目,是用世界上最好的拍黄片写的,项目基本是另一个小伙伴在撸码,我就兼职打杂和发布做点运维的工作. 然后昨天项目上了测试版之后,一用起来Error满天飞了.让小伙伴查 ...

UEP-添加表格

UEP中添加新的表格标签:function initCustomToolBar(){ var strHtml="

1301 邻值查找(set 平衡树 &vert; 链表)

描述 给定一个长度为 n 的序列 A,A 中的数各不相同.对于 A 中的每一个数 A_i,求: min(1≤j

python&lowbar;入门&lowbar;三级菜单

'''程序:三级菜单要求:1.打印省.市.县三级菜单2.可返回上一级3.可随时退出程序''' # -*- coding: utf-8 -*- # __author__ = 'qi' prov_city ...

GoLang基础数据类型---&gt&semi;字典(map)详解

GoLang基础数据类型--->字典(map)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   可能大家刚刚接触Golang的小伙伴都会跟我一样,这个map是干嘛的,是 ...

【转载】配置文件报错:不允许有匹配 &lbrack;xX&rsqb;&lbrack;mM&rsqb;&lbrack;lL&rsqb; 的处理指令目标

今天编写代码的时候,不小心给一个xml文件的首行加了一行空格,导致了启动报了如题类似的错误,查到一篇文章,顺藤摸瓜发现了这个失误,文章转载如下: 框架整合 的时候,XML 配置文件大多数情况是从另一个 ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值