Advertisement
Liliana797979

moving target - mid exam - viarno reshenie

Aug 15th, 2021
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function movingTarget(input) {
  2.   let sequenceOfTargets = input.shift().split(" ").map(Number);
  3.   while (input.length > 0) {
  4.     let command = input.shift();
  5.  
  6.     if (command == "End") {
  7.       break;
  8.     }
  9.     let curCommand = command.split(" ")[0];
  10.     switch (curCommand) {
  11.       case "Shoot":
  12.         let indexOfShoot = Number(command.split(" ")[1]);
  13.         let power = Number(command.split(" ")[2]);
  14.         if (indexOfShoot >= 0 && indexOfShoot < sequenceOfTargets.length) {
  15.           sequenceOfTargets[indexOfShoot] -= power;
  16.           if (sequenceOfTargets[indexOfShoot] <= 0) {
  17.             sequenceOfTargets.splice(indexOfShoot, 1);
  18.           }
  19.         }
  20.         break;
  21.       case "Add":
  22.         let indexOfAdd = Number(command.split(" ")[1]);
  23.         let value = Number(command.split(" ")[2]);
  24.         if (indexOfAdd >= 0 && indexOfAdd < sequenceOfTargets.length) {
  25.           sequenceOfTargets.splice(indexOfAdd, 0, value);
  26.         } else {
  27.           console.log(`Invalid placement!`);
  28.         }
  29.         break;
  30.       case "Strike":
  31.         let indexOfStrice = Number(command.split(" ")[1]);
  32.         let radius = Number(command.split(" ")[2]);
  33.         if (indexOfStrice >= 0 && indexOfStrice < sequenceOfTargets.length) {
  34.           if (
  35.             indexOfStrice - radius >= 0 &&
  36.             indexOfStrice + radius < sequenceOfTargets.length
  37.           ) {
  38.             sequenceOfTargets.splice(
  39.               indexOfStrice - radius,
  40.               radius + radius + 1
  41.             );
  42.           } else {
  43.             console.log(`Strike missed!`);
  44.           }
  45.         }
  46.         break;
  47.     }
  48.   }
  49.  
  50.   console.log(sequenceOfTargets.join("|"));
  51.  
  52.   function shootCommand(arr, index, power) {
  53.     let curItem = arr[index];
  54.     let itemForRemove = arr[index];
  55.  
  56.     if (curItem == undefined) {
  57.       return arr;
  58.     }
  59.     if (index <= arr.length - 1) {
  60.       curItem = curItem - power;
  61.     }
  62.     if (curItem <= 0) {
  63.       arr = arr.filter((x) => x != itemForRemove);
  64.     } else {
  65.       arr[index] = curItem;
  66.     }
  67.     return arr;
  68.   }
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement