Advertisement
xapu

Untitled

Jun 7th, 2017
405
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function Problem2vol2() {
  2.  
  3.     if (arguments[0].length == 0) {
  4.  
  5.         return
  6.     }
  7.  
  8.     let params = arguments[0]
  9.     let matrixLength = params[0].split(' ').length
  10.  
  11.  
  12.     Bombing(MatrixReader(params, matrixLength, matrixLength), BomberReader(params, matrixLength), matrixLength)
  13.     // Function that reads the matrix
  14.     function MatrixReader(forRead, lines, matrixLength) {
  15.         let result = []
  16.         for (let i = 0; i < matrixLength; i++) {
  17.             result[i] = Array.from(forRead[i].split(" ").map(Number))
  18.         }
  19.         return result
  20.     }
  21.     // Function that reads all cell with bombs
  22.     function BomberReader(input, line) {
  23.         if (input[line] == undefined) {
  24.             return input[line]
  25.         }
  26.         let tempArr = input[line].split(" ")
  27.         let bunnies = []
  28.         tempArr.map(x => {
  29.             let tempCor = x.split(",")
  30.             bunnies.push([Number(tempCor[0]), Number(tempCor[1])])
  31.         })
  32.         return bunnies
  33.     }
  34.     // Function that takes the initial matrix, the cells with bomber bunies and the length of the matrix, and after that prints the total dmg and the killing spree
  35.     function Bombing(matrixWithBunnies, bunniesWithBombs, length) {
  36.         let totalDmg = 0
  37.         let totalKillingSpree = 0
  38.  
  39.         if (bunniesWithBombs != undefined) {
  40.             for (let hopper of bunniesWithBombs) {
  41.                 let y = hopper[0]
  42.                 let x = hopper[1]
  43.                 let currentHopperCell = matrixWithBunnies[y][x]
  44.  
  45.                 if (currentHopperCell <= 0) {
  46.                     continue
  47.                 }
  48.                 totalDmg += currentHopperCell
  49.                 totalKillingSpree++
  50.  
  51.                 // up
  52.                 if (y < length && y > 0 && x >= 0 && x < length) {
  53.                     matrixWithBunnies[y - 1][x] -= currentHopperCell
  54.                 }
  55.                 // diagonal up right
  56.                 if (y < length && y > 0 && x >= 0 && x < length - 1) {
  57.                     matrixWithBunnies[y - 1][x + 1] -= currentHopperCell
  58.                 }
  59.                 // right
  60.                 if (y >= 0 && y < length && x >= 0 && x < length - 1) {
  61.                     matrixWithBunnies[y][x + 1] -= currentHopperCell
  62.                 }
  63.                 //diagonal right bot
  64.                 if (y >= 0 && y < length - 1 && x >= 0 && x < length - 1) {
  65.                     matrixWithBunnies[y + 1][x + 1] -= currentHopperCell
  66.                 }
  67.                 // bot
  68.                 if (y >= 0 && y < length - 1 && x >= 0 && x < length) {
  69.                     matrixWithBunnies[y + 1][x] -= currentHopperCell
  70.                 }
  71.                 // diagonala bot left
  72.                 if (y >= 0 && y < length - 1 && x > 0 && x < length) {
  73.                     matrixWithBunnies[y + 1][x - 1] -= currentHopperCell
  74.                 }
  75.                 // left
  76.                 if (y >= 0 && y < length && x > 0 && x < length) {
  77.                     matrixWithBunnies[y][x - 1] -= currentHopperCell
  78.                 }
  79.                 // diagonal left top
  80.                 if (y > 0 && y < length && x > 0 && x < length) {
  81.                     matrixWithBunnies[y - 1][x - 1] -= currentHopperCell
  82.                 }
  83.  
  84.                 matrixWithBunnies[y][x] = 0
  85.             }
  86.         }
  87.         for (let i = 0; i < length; i++) {
  88.             for (let j = 0; j < length; j++) {
  89.                 if (matrixWithBunnies[i][j] > 0) {
  90.                     totalKillingSpree++
  91.                     totalDmg += matrixWithBunnies[i][j]
  92.                 }
  93.             }
  94.         }
  95.         console.log(totalDmg)
  96.         console.log(totalKillingSpree)
  97.     }
  98. }
  99. Problem2vol2([])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement