酷代码 AI
菜单
服务商
DeepSeek字节豆包
更多选项

Java模拟护盾攻击过程及边界处理实现

根据您的需求,这是一个Java实现模拟小核桃攻击过程的程序。 ```java import java.util.Scanner; public class ShieldSimulator { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 读取5名敌人的初始护盾能量 int[] shields = new int[5]; for (int i = 0; i < 5; i++) { shields[i] = sc.nextInt(); } // 读取攻击次数n int n = sc.nextInt(); // 循环处理n次攻击 for (int i = 0; i < n; i++) { int type = sc.nextInt(); // 攻击类型: 1 粒子炮, 2 集束粒子炮 if (type == 1) { // 粒子炮:所有敌人护盾减5 for (int j = 0; j < 5; j++) { shields[j] -= 5; } } else if (type == 2) { // 集束粒子炮:读取攻击目标编号(1-5) int target = sc.nextInt(); int targetIndex = target - 1; // 转换为数组下标(0-4) // 减少指定敌人的护盾一半(整除2) shields[targetIndex] /= 2; // 减少左边相邻敌人的护盾一半 if (targetIndex > 0) { shields[targetIndex - 1] /= 2; } // 减少右边相邻敌人的护盾一半 if (targetIndex < 4) { shields[targetIndex + 1] /= 2; } } // 每次攻击后,将所有负数护盾置为0 for (int j = 0; j < 5; j++) { if (shields[j] < 0) { shields[j] = 0; } } } // 输出最终护盾值 for (int i = 0; i < 5; i++) { System.out.print(shields[i]); if (i < 4) { System.out.print(" "); } } System.out.println(); sc.close(); } } ``` ### 🔧 代码说明 - **读取输入**:先读取5个初始护盾值存入数组`shields`,再读取攻击次数n。 - **攻击处理**: - 粒子炮(type=1):遍历所有敌人,护盾值减5。 - 集束粒子炮(type=2):读取目标敌人编号,转换为数组下标,分别对目标及左右相邻的敌人护盾值进行整除2的操作。边界情况(下标0或4)只处理存在的相邻敌人。 - **负数归零**:每次攻击后立即检查所有护盾值,负数统一置为0。 - **输出结果**:按顺序打印5个护盾值,空格分隔。 您可以复制代码到本地运行并测试各种输入样例。 ######[AI问答 | 667点数解答 | 2026-07-07 23:12:34]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]