Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Scanner;
- public class ManOWar {
- public static void main(String[] args){
- Scanner scanner = new Scanner(System.in);
- String input = scanner.nextLine();
- String[] pirate = input.split(">");
- List<Integer> pirateShip = new ArrayList<>();
- for (String nums : pirate) {
- int digit = Integer.parseInt(nums);
- pirateShip.add(digit);
- }
- input = scanner.nextLine();
- String[] oponent = input.split(">");
- List<Integer> warship = new ArrayList<>();
- for (String nums : oponent) {
- int integer = Integer.parseInt(nums);
- warship.add(integer);
- }
- int health = Integer.parseInt(scanner.nextLine());
- input = scanner.nextLine();
- while (!input.equals("Retire")){
- String[] newCommand = input.split(" ");
- switch (newCommand[0]){
- case "Fire":
- int indexOfDamage = Integer.parseInt(newCommand[1]);
- int damage = Integer.parseInt(newCommand[2]);
- if(indexOfDamage >= 0 && indexOfDamage <= warship.size() - 1){
- int currHelth = warship.get(indexOfDamage);
- int afterDamage = currHelth - damage;
- if(afterDamage <= 0){
- System.out.println("You won! The enemy ship has sunken.");
- return;
- } else {
- warship.set(indexOfDamage, afterDamage);
- }
- }
- break;
- case "Defend":
- int statIndx = Integer.parseInt(newCommand[1]);
- int endIndx = Integer.parseInt(newCommand[2]);
- int damagePirate = Integer.parseInt(newCommand[3]);
- if(statIndx >=0 && statIndx < pirateShip.size()
- && endIndx >=0 && endIndx < pirateShip.size()){
- for(int i = statIndx; i <= endIndx; i++){
- pirateShip.set(i, pirateShip.get(i) - damagePirate);
- if(pirateShip.get(i) <= 0){
- System.out.println("You lost! The pirate ship has sunken.");
- return;
- }
- }
- }
- break;
- case "Repair":
- int indxToRepare = Integer.parseInt(newCommand[1]);
- int helthToRepare = Integer.parseInt(newCommand[2]);
- if(indxToRepare >= 0 && indxToRepare < pirateShip.size()){
- int currHelth = pirateShip.indexOf(indxToRepare);
- if(currHelth + helthToRepare >= health){
- pirateShip.set(indxToRepare, health);
- } else {
- pirateShip.set(indxToRepare, currHelth + helthToRepare);
- }
- }
- break;
- case "Status":
- int count = 0;
- for (Integer intPirate : pirateShip) {
- if(intPirate < 0.2 * health){
- count++;
- }
- }
- System.out.printf("%d sections need repair.%n", count);
- break;
- }
- input = scanner.nextLine();
- }
- int pirateShipSum = 0;
- int warshipSum = 0;
- for (Integer numsPirate : pirateShip) {
- pirateShipSum += numsPirate;
- }
- for (Integer numsWShip : warship) {
- warshipSum += numsWShip;
- }
- 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