Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package PastMidExams.MidExamRetake6August2019;
- import java.util.Arrays;
- import java.util.Scanner;
- public class ManOWarArray {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- int[] pirateShip = Arrays.stream(scanner.nextLine().split(">")).mapToInt(e -> Integer.parseInt(e)).toArray();
- int[] warShip = Arrays.stream(scanner.nextLine().split(">")).mapToInt(e -> Integer.parseInt(e)).toArray();
- int maxHealth = Integer.parseInt(scanner.nextLine());
- String command = scanner.nextLine();
- while(!command.equals("Retire")) {
- String[] tokens = command.split(" ");
- int damagePoints = 0;
- switch (tokens[0]) {
- case "Fire":
- int indexToDamage = Integer.parseInt(tokens[1]);
- damagePoints = Integer.parseInt(tokens[2]);
- if (indexToDamage >= 0 && indexToDamage < warShip.length) {
- warShip[indexToDamage] -= damagePoints;
- if (warShip[indexToDamage] <= 0) {
- System.out.println("You won! The enemy ship has sunken.");
- return;
- }
- }
- break;
- case "Defend":
- int startIndex = Integer.parseInt(tokens[1]);
- int endIndex = Integer.parseInt(tokens[2]);
- damagePoints = Integer.parseInt(tokens[3]);
- if (startIndex >= 0 && endIndex >= startIndex && endIndex <= pirateShip.length) {
- for (int i = startIndex; i <= endIndex; i++) {
- pirateShip[i] -= damagePoints;
- if (pirateShip[i] <= 0) {
- System.out.println("You lost! The pirate ship has sunken.");
- return;
- }
- }
- }
- break;
- case "Repair":
- int indexToRepair = Integer.parseInt(tokens[1]);
- int health = Integer.parseInt(tokens[2]);
- if (indexToRepair >= 0 && indexToRepair < pirateShip.length) {
- if (pirateShip[indexToRepair] + health < maxHealth) {
- pirateShip[indexToRepair] += health;
- } else {
- pirateShip[indexToRepair] = maxHealth;
- }
- }
- break;
- case "Status":
- int counter = 0;
- for (int i = 0; i < pirateShip.length; i++) {
- if (pirateShip[i] < (0.2 * maxHealth)) {
- counter++;
- }
- }
- System.out.printf("%d sections need repair.%n", counter);
- break;
- }
- command = scanner.nextLine();
- }
- int pirateShipSum = Arrays.stream(pirateShip).sum();
- int warShipSum = Arrays.stream(warShip).sum();
- System.out.printf("Pirate ship status: %d%n", pirateShipSum);
- System.out.printf("Warship status: %d%n", warShipSum);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement