Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function bunnyKill(input) {
- let index = 0;
- let rows = input.reverse();
- let coordinates = rows[0].split(/,|\s/).map(Number);
- rows.reverse().pop();
- let snowBallDMG = 0;
- let snowBallC = 0;
- for (let i = 0; i < rows.length; i++) {
- rows.splice(i, 1, rows[i].split(' ').map(Number));
- }
- for (let row = 0; row < coordinates.length; row += 2) {
- let rowMatch = coordinates[index];
- index++;
- let columnMatch = coordinates[index];
- index++;
- if (rows[rowMatch][columnMatch] > 0) {
- let talibanBunny = rows[rowMatch][columnMatch];
- snowBallDMG += talibanBunny;
- snowBallC++;
- let explosionRange = [-1, -1, -1, 0, -1, 1, 0, -1, 0, 1, 1, -1, 1, 0, 1, 1];
- let i = 0;
- for (let range = 0; range < 8; range++) {
- let expRow = explosionRange[i];
- i++;
- let expColumn = explosionRange[i];
- i++;
- if (rows[rowMatch + expRow] !== undefined) {
- if (rows[rowMatch + expRow][columnMatch + expColumn] !== undefined) {
- let validExplosion = rows[rowMatch + expRow][columnMatch + expColumn];
- validExplosion - talibanBunny >= 0 ? rows[rowMatch + expRow].splice(columnMatch + expColumn, 1, validExplosion - talibanBunny) : rows[rowMatch + expRow].splice(columnMatch + expColumn, 1, 0);
- }
- }
- }
- rows[rowMatch].splice(columnMatch, 1, 0);
- }
- }
- for (let row of rows) {
- snowBallDMG += row.reduce((cellA, cellB) => cellA + cellB);
- for (let cell of row) {
- if (cell > 0) {
- snowBallC++;
- }
- }
- }
- console.log(snowBallDMG);
- console.log(snowBallC);
- }
- bunnyKill(['5 10 15 20',
- '10 10 10 10',
- '10 15 10 10',
- '10 10 10 10',
- '2,2 0,1']);
- console.log('---');
- bunnyKill(['10 10 10',
- '10 10 10',
- '10 10 10',
- '0,0']);
Advertisement
Add Comment
Please, Sign In to add comment