Skip to content

Instantly share code, notes, and snippets.

@cjavdev
Created December 10, 2022 20:38
Show Gist options
  • Save cjavdev/9f0aab41191b1050886257c0ce052be3 to your computer and use it in GitHub Desktop.
Save cjavdev/9f0aab41191b1050886257c0ce052be3 to your computer and use it in GitHub Desktop.
cycles = 0
cycle_tracker = {}
x = 1
if ARGV.empty?
data = DATA.readlines(chomp: true)
else
data = File.readlines(ARGV[0], chomp: true)
end
data
.map {_1.split(' ')}
.map {|cmd, arg| [cmd, arg.to_i]}
.each do |cmd, arg|
if cmd == 'noop'
cycles += 1
cycle_tracker[cycles] = x# * cycles
else cmd == 'addx'
cycles += 1
cycle_tracker[cycles] = x# * cycles
cycles += 1
cycle_tracker[cycles] = x# * cycles
x += arg
end
end
# PART 1
# result = Enumerator.produce(20) { _1 + 40 }.take(6).inject(0) do |sum, n|
# cycle_tracker[n] + sum
# end
# p result
cycle_tracker.each do |cycle, x|
column = (cycle - 1) % 40
puts if column == 0
if column.between?(x - 1, x + 1)
print "#"
else
print " "
end
end
__END__
addx 15
addx -11
addx 6
addx -3
addx 5
addx -1
addx -8
addx 13
addx 4
noop
addx -1
addx 5
addx -1
addx 5
addx -1
addx 5
addx -1
addx 5
addx -1
addx -35
addx 1
addx 24
addx -19
addx 1
addx 16
addx -11
noop
noop
addx 21
addx -15
noop
noop
addx -3
addx 9
addx 1
addx -3
addx 8
addx 1
addx 5
noop
noop
noop
noop
noop
addx -36
noop
addx 1
addx 7
noop
noop
noop
addx 2
addx 6
noop
noop
noop
noop
noop
addx 1
noop
noop
addx 7
addx 1
noop
addx -13
addx 13
addx 7
noop
addx 1
addx -33
noop
noop
noop
addx 2
noop
noop
noop
addx 8
noop
addx -1
addx 2
addx 1
noop
addx 17
addx -9
addx 1
addx 1
addx -3
addx 11
noop
noop
addx 1
noop
addx 1
noop
noop
addx -13
addx -19
addx 1
addx 3
addx 26
addx -30
addx 12
addx -1
addx 3
addx 1
noop
noop
noop
addx -9
addx 18
addx 1
addx 2
noop
noop
addx 9
noop
noop
noop
addx -1
addx 2
addx -37
addx 1
addx 3
noop
addx 15
addx -21
addx 22
addx -6
addx 1
noop
addx 2
addx 1
noop
addx -10
noop
noop
addx 20
addx 1
addx 2
addx 2
addx -6
addx -11
noop
noop
noop
@cjavdev
Copy link
Author

cjavdev commented Dec 10, 2022

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment