Advertisement
Krassi_Daskalova

ManOWar

Aug 6th, 2019
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.97 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.List;
  3. import java.util.Scanner;
  4.  
  5. public class ManOWar {
  6. public static void main(String[] args){
  7. Scanner scanner = new Scanner(System.in);
  8.  
  9. String input = scanner.nextLine();
  10. String[] pirate = input.split(">");
  11. List<Integer> pirateShip = new ArrayList<>();
  12. for (String nums : pirate) {
  13. int digit = Integer.parseInt(nums);
  14. pirateShip.add(digit);
  15. }
  16. input = scanner.nextLine();
  17. String[] oponent = input.split(">");
  18. List<Integer> warship = new ArrayList<>();
  19. for (String nums : oponent) {
  20. int integer = Integer.parseInt(nums);
  21. warship.add(integer);
  22. }
  23.  
  24. int health = Integer.parseInt(scanner.nextLine());
  25. input = scanner.nextLine();
  26.  
  27. while (!input.equals("Retire")){
  28. String[] newCommand = input.split(" ");
  29. switch (newCommand[0]){
  30. case "Fire":
  31. int indexOfDamage = Integer.parseInt(newCommand[1]);
  32. int damage = Integer.parseInt(newCommand[2]);
  33. if(indexOfDamage >= 0 && indexOfDamage <= warship.size() - 1){
  34. int currHelth = warship.get(indexOfDamage);
  35. int afterDamage = currHelth - damage;
  36. if(afterDamage <= 0){
  37. System.out.println("You won! The enemy ship has sunken.");
  38. return;
  39. } else {
  40. warship.set(indexOfDamage, afterDamage);
  41. }
  42. }
  43. break;
  44. case "Defend":
  45. int statIndx = Integer.parseInt(newCommand[1]);
  46. int endIndx = Integer.parseInt(newCommand[2]);
  47. int damagePirate = Integer.parseInt(newCommand[3]);
  48. if(statIndx >=0 && statIndx < pirateShip.size()
  49. && endIndx >=0 && endIndx < pirateShip.size()){
  50. for(int i = statIndx; i <= endIndx; i++){
  51. pirateShip.set(i, pirateShip.get(i) - damagePirate);
  52. if(pirateShip.get(i) <= 0){
  53. System.out.println("You lost! The pirate ship has sunken.");
  54. return;
  55. }
  56. }
  57. }
  58. break;
  59. case "Repair":
  60. int indxToRepare = Integer.parseInt(newCommand[1]);
  61. int helthToRepare = Integer.parseInt(newCommand[2]);
  62. if(indxToRepare >= 0 && indxToRepare < pirateShip.size()){
  63. int currHelth = pirateShip.indexOf(indxToRepare);
  64. if(currHelth + helthToRepare >= health){
  65. pirateShip.set(indxToRepare, health);
  66. } else {
  67. pirateShip.set(indxToRepare, currHelth + helthToRepare);
  68. }
  69. }
  70. break;
  71. case "Status":
  72. int count = 0;
  73. for (Integer intPirate : pirateShip) {
  74. if(intPirate < 0.2 * health){
  75. count++;
  76. }
  77. }
  78. System.out.printf("%d sections need repair.%n", count);
  79. break;
  80. }
  81. input = scanner.nextLine();
  82. }
  83. int pirateShipSum = 0;
  84. int warshipSum = 0;
  85. for (Integer numsPirate : pirateShip) {
  86. pirateShipSum += numsPirate;
  87. }
  88. for (Integer numsWShip : warship) {
  89. warshipSum += numsWShip;
  90. }
  91. System.out.printf("Pirate ship status: %d%n", pirateShipSum);
  92. System.out.printf("Warship status: %d%n", warshipSum);
  93. }
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement