39 lines
878 B
Ruby
Executable File
39 lines
878 B
Ruby
Executable File
#!/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(:*)}"
|