From 630bb4d3527eb5ae2f9789cb689088558a6173a8 Mon Sep 17 00:00:00 2001 From: Nat Lasseter Date: Fri, 15 Dec 2017 01:32:39 +0000 Subject: Day03 Part2 at last :D --- day03/part2 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100755 day03/part2 diff --git a/day03/part2 b/day03/part2 new file mode 100755 index 0000000..c6c4339 --- /dev/null +++ b/day03/part2 @@ -0,0 +1,50 @@ +#!/usr/bin/env ruby + +def turn(v) + return case v + when [0, 1] + [1, 0] + when [1, 0] + [0, -1] + when [0, -1] + [-1, 0] + when [-1, 0] + [0, 1] + end +end + +input = gets.chomp.to_i + +wid = 31 +hei = 31 + +r = (hei + 1) / 2 +c = (wid + 1) / 2 + +going = [0, 1] + +grid = [] +hei.times { grid << ([0] * wid) } + +grid[r][c] = 1 + +loop do + r += going[0] + c += going[1] + + grid[r][c] = + grid[r][c+1] + + grid[r+1][c+1] + + grid[r+1][c] + + grid[r+1][c-1] + + grid[r][c-1] + + grid[r-1][c-1] + + grid[r-1][c] + + grid[r-1][c+1] + + break if grid[r][c] > input + try = turn(going) + going = try if grid[r+try[0]][c+try[1]] == 0 +end + +puts grid[r][c] -- cgit v1.2.3