这个题麻烦在角色的信息不好处理

想想其实也好处理,只需要封装一个角色类,将生命值和攻击力封装起来就好了

还有一点是随从进场位置,如果出现在左边要使右面所有随从position+1

其实也好处理,正好!用Link接口实现的有add(index,element)方法,数据在列表中的位置可以完美的表示不同随从的position

更完美的是:“任意时刻,战场上的随从总是从1开始连续编号。”

简直是提醒你用这个方法。

最后注意输出顺序和间隔就好。

package csp2016_09_3;import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;class Role{int life,power;Role(int life,int power){this.life = life;this.power=power;}Role(int life){this.life=life;}
}public class Main{static List<Role> p[] = new ArrayList[2];public static void main(String[] args){Scanner sc = new Scanner(System.in);int n = sc.nextInt();sc.nextLine();for (int i = 0; i < p.length; i++) {p[i] = new ArrayList<Role>();p[i].add(new Role(30,0));}int player = 0;int pos=0,attack=0,health=0;int attacker=0,defender=0;while((n--)!=0){String action = sc.next();if(action.equals("summon")){pos = sc.nextInt();attack = sc.nextInt();health = sc.nextInt();
//              System.out.println(pos+" "+attack+" "+health);p[player].add(pos, new Role(health,attack));}else if(action.equals("attack")){attacker = sc.nextInt();defender = sc.nextInt();//              System.out.println(player+" "+attacker+" "+defender);
//
//              for (int i = 0; i < p.length; i++) {
//                  for (int j = 0; j < p[i].size(); j++) {
//                      int pp = p[i].get(j).power;
//                      int hh = p[i].get(j).life;
//                      System.out.print(pp+" "+hh+"||");
//                  }
//                  System.out.println("||");
//              }
//              System.out.println(p[player].get(attacker).life+" "+p[player].get(attacker).power);
//              System.out.println(p[1-player].get(defender).life+" "+p[1-player].get(defender).power);p[player].get(attacker).life -= p[1-player].get(defender).power; p[1-player].get(defender).life -= p[player].get(attacker).power;if(p[player].get(attacker).life <= 0){p[player].remove(attacker);}if(defender!=0 && p[1-player].get(defender).life <= 0){p[1-player].remove(defender);}}else if(action.equals("end")){player = 1-player;}else{System.out.println("error");}}//1if(p[0].get(0).life <=0 ) System.out.println(-1);else if(p[1].get(0).life <=0) System.out.println(1);else System.out.println(0);//2System.out.println(p[0].get(0).life);//3System.out.print(p[0].size()-1+" ");for (int i = 1; i < p[0].size(); i++) {System.out.print(p[0].get(i).life+" ");}System.out.println();//4System.out.println(p[1].get(0).life);//5System.out.print(p[1].size()-1+" ");for (int i = 1; i < p[1].size(); i++) {System.out.print(p[1].get(i).life+" ");}}
}

CCF CSP 炉石传说 JAVA 201609-3 100分相关推荐

  1. CCF 201612-3 炉石传说 JAVA实现

    炉石传说 问题描述 <炉石传说:魔兽英雄传>(Hearthstone: Heroes of Warcraft,简称炉石传说)是暴雪娱乐开发的一款集换式卡牌游戏(如下图所示).游戏在一个战斗 ...

  2. CCF CSP 201609-2 火车购票(C++语言100分)[简单模拟题]

    1. 问题链接:CCF 201609-2 火车购票 试题编号: 201609-2 试题名称: 火车购票 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 请实现一个铁路购票系统的 ...

  3. CCF CSP 201609-2 火车购票 C++实现 100分

    问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排5个座位.为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10 ...

  4. CCF CSP 20190901 小明种苹果 100分 解法/思想

    近几天正在疯狂的刷CCF题,写博客主要是做一下笔记以及记录一下自己的心得,如果能够帮到大家那就再好不过了,废话不多说,咱们放题: [题目概述] 小明(小明事情真多)要种苹果,需要疏果把不好的苹果去掉, ...

  5. CCF CSP 行车路线 java 201712_4

    CCF CSP 行车路线 java 201712_4 问题描述 小明和小芳出去乡村玩,小明负责开车,小芳来导航. 小芳将可能的道路分为大道和小道.大道比较好走,每走1公里小明会增加1的疲劳度.小道不好 ...

  6. CSP201609-3(炉石传说)(Java 100分)(只有78行代码)

    问题描述 <炉石传说:魔兽英雄传>(Hearthstone: Heroes of Warcraft,简称炉石传说)是暴雪娱乐开发的一款集换式卡牌游戏(如下图所示).游戏在一个战斗棋盘上进行 ...

  7. 炉石传说 java实现

    试题编号: 201609-3 试题名称: 炉石传说 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 <炉石传说:魔兽英雄传>(Hearthstone: Heroes ...

  8. 程序设计思维与实践 csp路径解析、csp炉石传说

    目录 路径解析 输入格式 输出格式 样例 想法: 代码: 炉石传说 描述: 输入格式: 输出格式: 样例: 评测用例规模与约定: 想法: 代码: 路径解析 描述: 在操作系统中,数据通常以文件的形式存 ...

  9. 炉石传说 java_炉石传说 java实现

    试题编号: 201609-3 试题名称:炉石传说 时间限制:1.0s 内存限制:256.0MB 问题描述: 问题描述 <炉石传说:魔兽英雄传>(Hearthstone: Heroes of ...

最新文章

  1. 大学python实训总结-【实训总结】大学生python相关实训总结
  2. 熟悉HTML CSS布局模型
  3. iOS 设置Label中特定的文字大小和颜色
  4. 关闭弹出窗口刷新父窗口
  5. python 输出引号_python输出字符串单双引号如何选择
  6. 虚拟化概述及VMware VSphere介绍(一)
  7. vue学习笔记-03-浅谈组件-概念,入门,如何用props给组件传值?
  8. [ESC] EnTT 学习记录 1
  9. 小米10超大杯本月亮相稳了:无线快充纪录将再次刷新
  10. 大数据实效_普洱市以“大数据”思维全面提升新时代干部管理监督实效
  11. 魔兽世界怀旧服务器最新,魔兽世界怀旧服夏一可在哪个服务器 魔兽世界怀旧服夏一可去哪个区玩...
  12. Mac下输入法总是默认中文,怎么设置成英文的?
  13. iOS Programming - Disallow Alphabetic Characters
  14. lingo纳什均衡代码_传统的战略式博弈求解纳什均衡方法——虚拟博弈(Fictitious Play)讲解及其代码...
  15. MATLAB实现巴特沃斯数字滤波器
  16. Python爬虫:网易云音乐评论爬取
  17. CCP2.1协议基础知识
  18. ​深圳国际会展中心希尔顿、茂名浪漫海岸喜来登度假、南昌青山湖希尔顿欢朋酒店开业 | 中国酒店周刊...
  19. sqlite3中,blob字段的读取和写入
  20. 语音转文字转换器市场现状研究分析-

热门文章

  1. 阿里系上市公司“后院起火”,董事长遭网上“寻夫”!
  2. gettag java_Java TagLibraryInfo.getTag方法代码示例
  3. 上海上传数据重复-sftp端口关闭
  4. html画布碰撞,HTML5画布:碰撞检测问题
  5. JavaScript 回调函数/Promise/ async/await
  6. CV 经典主干网络 (Backbone) 系列: ResNet变种
  7. 语言C++之简单C++语言介绍
  8. 区块链游戏开发颠覆传统游戏开发的 5 种方式
  9. 《C语言参悟之旅》新鲜试读(连载4)
  10. VIM安装YCM插件的详细步骤