You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
advent-of-code/2017/ruby/day_10.rb

34 lines
732 B

list = (0..255).to_a
current = 0
# lengths = ARGF.read.strip.split(?,).map(&:to_i)
input = ARGF.read.strip
p input
lengths = input.split(//).map(&:ord)
p lengths
lengths.concat([17, 31, 73, 47, 23])
skip = 0
# list = (0..4).to_a
# lengths = [3,4,1,5]
64.times do
lengths.each do |length|
list[0, length] = list[0, length].reverse
list = list.rotate(length + skip)
current += length + skip
current %= list.size
skip += 1
# p list.rotate(list.size - current)
end
end
list = list.rotate(list.size - current)
p list
dense = list.each_slice(16).map {|slice| slice.inject(&:^) }
p dense
p hex = dense.map {|n| n.to_s(16).rjust(2, ?0) }.join
# list = list.rotate(list.size - current)
# p list[0] * list[1]