From cdbcffdda5c7cdc22fff8e2fcc5bd77519c0788e Mon Sep 17 00:00:00 2001 From: Alpha Chen Date: Thu, 8 Dec 2022 21:42:04 -0800 Subject: [PATCH] [2022][ruby][9.x] refactoring --- 2022/ruby/day_09.rb | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/2022/ruby/day_09.rb b/2022/ruby/day_09.rb index f6f5dbc..5519362 100644 --- a/2022/ruby/day_09.rb +++ b/2022/ruby/day_09.rb @@ -19,15 +19,15 @@ class Snake end @knots[0] = @knots[0].zip(delta).map { _1 + _2 } - (0...@knots.size-1).each do |i| - head = @knots[i] - tail = @knots[i+1] - + @knots = @knots[1..].inject([@knots[0]]) {|knots, tail| + head = knots.last delta = head.zip(tail).map { _1 - _2 } - if delta.any? { _1.abs > 1 } - @knots[i+1] = tail.zip(delta.map { _1.clamp(-1, 1) }).map { _1 + _2 } - end - end + knots << if delta.any? { _1.abs > 1 } + tail.zip(delta.map { _1.clamp(-1, 1) }).map { _1 + _2 } + else + tail + end + } end end