Advertisement
Didart

Man O War

Dec 5th, 2021
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.29 KB | None | 0 0
  1. import java.util.Arrays;
  2. import java.util.List;
  3. import java.util.Scanner;
  4. import java.util.stream.Collectors;
  5.  
  6. public class ManOWar2 {
  7.     public static void main(String[] args) {
  8.         Scanner scanner = new Scanner(System.in);
  9.         List<Integer> pirateShip = Arrays.stream(scanner.nextLine().split(">")).map(Integer::parseInt).collect(Collectors.toList());
  10.         List<Integer> warShip = Arrays.stream(scanner.nextLine().split(">")).map(Integer::parseInt).collect(Collectors.toList());
  11.         int maxHealth = Integer.parseInt(scanner.nextLine());
  12.         String text = scanner.nextLine();
  13.         boolean endGame = false;
  14.         while (!text.equals("Retire")) {
  15.             List<String> command = Arrays.stream(text.split(" ")).collect(Collectors.toList());
  16.  
  17.             String commandAnElement = command.get(0);
  18.  
  19.             switch (commandAnElement) {
  20.                 case "Fire": {
  21.                     int index = Integer.parseInt(command.get(1));
  22.                     int damage = Integer.parseInt(command.get(2));
  23.  
  24.                     if (index < warShip.size() && index >= 0) {
  25.                         int currentDamage = warShip.get(index);
  26.                         int newDamage = currentDamage - damage;
  27.                         warShip.set(index, newDamage);
  28.                         if (newDamage <= 0) {
  29.                             endGame = true;
  30.                         }
  31.                     }
  32.                     if (endGame) {
  33.                         System.out.println("You won! The enemy ship has sunken.");
  34.                         break;
  35.                     }
  36.                     break;
  37.                 }
  38.                 case "Defend": {
  39.                     int startIndex = Integer.parseInt(command.get(1));
  40.                     int endIndex = Integer.parseInt(command.get(2));
  41.                     int demage = Integer.parseInt(command.get(3));
  42.  
  43.                     if (startIndex >= 0 && endIndex <= pirateShip.size()) {
  44.                         for (int i = startIndex; i <= endIndex; i++) {
  45.                             int currentDamage = pirateShip.get(i);
  46.                             int newDamage = currentDamage - demage;
  47.                             pirateShip.set(i, newDamage);
  48.                             if (newDamage <= 0) {
  49.                                 endGame = true;
  50.                             }
  51.                         }
  52.                         if (endGame) {
  53.                             System.out.println("You lost! The pirate ship has sunken.");
  54.                             break;
  55.                         }
  56.                     }
  57.                     break;
  58.                 }
  59.                 case "Repair": {
  60.                     int index = Integer.parseInt(command.get(1));
  61.                     int health = Integer.parseInt(command.get(2));
  62.                     if (index < pirateShip.size() && index >= 0) {
  63.                         int currentHealth = pirateShip.get(index);
  64.                         int newHealth = currentHealth + health;
  65.                         pirateShip.set(index, newHealth);
  66.                         if (newHealth >= maxHealth) {
  67.                             pirateShip.set(index, maxHealth);
  68.                         }
  69.                     }
  70.                     break;
  71.                 }
  72.                 case "Status": {
  73.                     int counter = 0;
  74.                     for (int health : pirateShip) {
  75.                         double percent = (1.0 * health * 100) / maxHealth;
  76.                         if (percent < 20) {
  77.                             counter++;
  78.                         }
  79.                     }
  80.                     System.out.printf("%d sections need repair.%n", counter);
  81.                     break;
  82.                 }
  83.             }
  84.             if (endGame) {
  85.                 break;
  86.             }
  87.             text = scanner.nextLine();
  88.         }
  89.         if (!endGame) {
  90.             int sumPirateShip = 0;
  91.             int enemyShip = 0;
  92.             for (Integer integer : pirateShip) {
  93.                 sumPirateShip += integer;
  94.             }
  95.  
  96.             for (Integer integer : warShip) {
  97.                 enemyShip += integer;
  98.             }
  99.             System.out.printf("Pirate ship status: %d%n", sumPirateShip);
  100.             System.out.printf("Warship status: %d%n", enemyShip);
  101.         }
  102.     }
  103. }
  104.  
  105.  
  106.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement