finished solution
parent
17ec01ad9e
commit
506621790a
|
@ -0,0 +1,38 @@
|
||||||
|
#!/bin/env ruby
|
||||||
|
|
||||||
|
slopes = {
|
||||||
|
:one => { :right => 1, :down => 1},
|
||||||
|
:two => { :right => 3, :down => 1},
|
||||||
|
:three => { :right => 5, :down => 1},
|
||||||
|
:four => { :right => 7, :down => 1},
|
||||||
|
:five => { :right => 1, :down => 2}
|
||||||
|
}
|
||||||
|
|
||||||
|
input = Array.new
|
||||||
|
File.readlines('./input').each.with_index do |line, i|
|
||||||
|
line.strip!
|
||||||
|
input[i] = line.split('')
|
||||||
|
end
|
||||||
|
|
||||||
|
input.each do |x|
|
||||||
|
x.map! do |y|
|
||||||
|
y == '#' ? true : false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
collisions = Array.new
|
||||||
|
slopes.each do |num, slope|
|
||||||
|
i = 0
|
||||||
|
trees = 0
|
||||||
|
len = input[0].length
|
||||||
|
input.each.with_index do |row, row_num|
|
||||||
|
next if (slope[:down] == 2 and row_num.odd?)
|
||||||
|
trees += 1 if row[i]
|
||||||
|
i +=slope[:right]
|
||||||
|
i = i - len if i >= len
|
||||||
|
end
|
||||||
|
collisions.push(trees)
|
||||||
|
puts "On slope #{num.to_s} We hit #{trees} trees"
|
||||||
|
end
|
||||||
|
|
||||||
|
puts "Multiplied together we get: #{collisions.inject(:*)}"
|
Loading…
Reference in New Issue