Advertisement
vbe_elvis

2021 Day 17

Dec 17th, 2021
472
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 0.79 KB | None | 0 0
  1.  
  2. class Probe {
  3.     val minX = 14
  4.     val maxX = 50
  5.     val minY = -225
  6.     val maxY = -267
  7.     val yVelocities = maxY..(maxY * -1)
  8.     val xVelocities = 1..maxX
  9.  
  10.     @Test
  11.     fun probes() {
  12.         println( "Part 2 " + yVelocities.sumBy { yVel ->
  13.             xVelocities.count { xVel ->
  14.                 throwProbe(yVel, xVel)
  15.             }
  16.         })
  17.     }
  18.  
  19.     private fun throwProbe(yVel: Int, xVel: Int): Boolean {
  20.         var yVelI = yVel
  21.         var xVelI = xVel
  22.         var x = 0
  23.         var y = 0
  24.         while (x <= maxX && y >= maxY) {
  25.             if (x >= minX && y <= minY) {
  26.                 return true
  27.             }
  28.             x += xVelI
  29.             y += yVelI
  30.             if (xVelI != 0) xVelI -= 1
  31.             yVelI -= 1
  32.         }
  33.         return false
  34.     }
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement