Advertisement
PowerCell46

Ladybugs JS

Mar 7th, 2023
550
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function ladybugs(array) {
  2.     let sizeOfTheField = array[0];
  3.     let arrayOfLadybugsInitialIndexes = (array[1]).split(" ");
  4.  
  5.     let areaSpace = [];
  6.     for (let index = 0; index < sizeOfTheField; index++) {
  7.         areaSpace.push(0);
  8.     }
  9.     for (let index = 0; index < arrayOfLadybugsInitialIndexes.length; index++) {
  10.         let currentLadyBugIndex = Number(arrayOfLadybugsInitialIndexes[index]);
  11.         if (0 <= currentLadyBugIndex && currentLadyBugIndex < sizeOfTheField) {
  12.             areaSpace.splice(currentLadyBugIndex, 1, 1);
  13.         }
  14.     }
  15.  
  16.     let index = 2;
  17.     while (index < array.length) {
  18.         let currentInput = array[index].split(" ");
  19.         let currentLadyBugIndex = Number(currentInput.shift());
  20.  
  21.         if (areaSpace[currentLadyBugIndex] === 1) {
  22.             areaSpace.splice(currentLadyBugIndex, 1, 0);
  23.             let currentDirection = currentInput.shift();
  24.             let flyLength = Number(currentInput.shift());
  25.             let newPositionIndex = 0;
  26.             if (currentDirection === "right") {
  27.                 newPositionIndex = currentLadyBugIndex + flyLength;
  28.             } else if (currentDirection === "left") {
  29.                 newPositionIndex = currentLadyBugIndex - flyLength;
  30.             }
  31.  
  32.             if (newPositionIndex >= 0 && newPositionIndex < sizeOfTheField) {
  33.                 while (areaSpace[newPositionIndex] === 1) {
  34.                     if(currentDirection === "right") {
  35.                         newPositionIndex += flyLength;
  36.                     } else if (currentDirection === "left") {
  37.                         newPositionIndex -= flyLength;
  38.                     }
  39.                 }
  40.                 if (newPositionIndex >= 0 && newPositionIndex < sizeOfTheField) {
  41.                     areaSpace.splice(newPositionIndex, 1, 1);
  42.                 }
  43.             }
  44.         }
  45.         index++;
  46.     }
  47.  
  48.     console.log(areaSpace.join(" "));
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement