-Enigmos-

bunnyKill.js

Apr 15th, 2022
1,135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function bunnyKill(input) {
  2.     let index = 0;
  3.     let rows = input.reverse();
  4.     let coordinates = rows[0].split(/,|\s/).map(Number);
  5.     rows.reverse().pop();
  6.     let snowBallDMG = 0;
  7.     let snowBallC = 0;
  8.  
  9.     for (let i = 0; i < rows.length; i++) {
  10.         rows.splice(i, 1, rows[i].split(' ').map(Number));
  11.     }
  12.  
  13.     for (let row = 0; row < coordinates.length; row += 2) {
  14.         let rowMatch = coordinates[index];
  15.         index++;
  16.         let columnMatch = coordinates[index];
  17.         index++;
  18.         if (rows[rowMatch][columnMatch] > 0) {
  19.             let talibanBunny = rows[rowMatch][columnMatch];
  20.             snowBallDMG += talibanBunny;
  21.             snowBallC++;
  22.  
  23.             let explosionRange = [-1, -1, -1, 0, -1, 1, 0, -1, 0, 1, 1, -1, 1, 0, 1, 1];
  24.             let i = 0;
  25.  
  26.             for (let range = 0; range < 8; range++) {
  27.                 let expRow = explosionRange[i];
  28.                 i++;
  29.                 let expColumn = explosionRange[i];
  30.                 i++;
  31.                
  32.                 if (rows[rowMatch + expRow] !== undefined) {
  33.                     if (rows[rowMatch + expRow][columnMatch + expColumn] !== undefined) {
  34.                         let validExplosion = rows[rowMatch + expRow][columnMatch + expColumn];
  35.                         validExplosion - talibanBunny >= 0 ? rows[rowMatch + expRow].splice(columnMatch + expColumn, 1, validExplosion - talibanBunny) : rows[rowMatch + expRow].splice(columnMatch + expColumn, 1, 0);
  36.                     }
  37.                 }
  38.             }
  39.             rows[rowMatch].splice(columnMatch, 1, 0);
  40.         }
  41.     }
  42.  
  43.     for (let row of rows) {
  44.         snowBallDMG += row.reduce((cellA, cellB) => cellA + cellB);
  45.         for (let cell of row) {
  46.             if (cell > 0) {
  47.                 snowBallC++;
  48.             }
  49.         }
  50.     }
  51.     console.log(snowBallDMG);
  52.     console.log(snowBallC);
  53. }
  54.  
  55. bunnyKill(['5 10 15 20',
  56.     '10 10 10 10',
  57.     '10 15 10 10',
  58.     '10 10 10 10',
  59.     '2,2 0,1']);
  60.  
  61. console.log('---');
  62.  
  63. bunnyKill(['10 10 10',
  64.     '10 10 10',
  65.     '10 10 10',
  66.     '0,0']);
Advertisement
Add Comment
Please, Sign In to add comment