From f871f28d27a306a776099b5dc7e6f8d157253179 Mon Sep 17 00:00:00 2001 From: Alpha Chen Date: Fri, 9 Dec 2022 21:42:52 -0800 Subject: [PATCH] [2022][ruby][10.x] --- 2022/ruby/day_10.rb | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 2022/ruby/day_10.rb diff --git a/2022/ruby/day_10.rb b/2022/ruby/day_10.rb new file mode 100644 index 0000000..1fafd2f --- /dev/null +++ b/2022/ruby/day_10.rb @@ -0,0 +1,25 @@ +instructions = ARGF.read.lines(chomp: true) + +adds = {} +cycle = 1 +instructions.each do |instruction| + cycle += case instruction + when /noop/ + 1 + when /addx (-?\d+)/ + adds[cycle+1] = $1.to_i + 2 + else fail instruction + end +end + +xs = (0..adds.keys.max).inject([1]) { _1 << _1.last + adds.fetch(_2, 0) } +p 20.step(by: 40, to: 220).map { [_1, xs[_1]] }.sum { _1 * _2 } + +puts 6.times.map {|y| + 40.times.map {|x| + cycle = 40*y + x + 1 + xx = xs.fetch(cycle, xs.last) + (-1..1).cover?(x - xx) ? ?# : ?. + }.join +}.join("\n")