# Posts

## Advent of Code Day 3

Dec 3, 2020 | 2 minutes to read

Tags: geeky, software

Today is day 3 of Advent of Code. See my recent post for an explanation.

The challenge today had us reading a ‘map’ with lines showing either “.” for an empty space, or “#” for a tree. We had to figure out how to walk the map and count the number of trees we’d hit, based on different slopes. It was challening, since I stick at arrays and such, but after many tries, I got both parts right!

Part 1’s Code:

``````# Advent of Code #3 part 2 - Starting at the top-left corner of your map and
# following a slope of right 3 and down 1, how many trees would you encounter?
treecount = 0
clearspace = '.'
tree = '#'
lineCtr = 0
colCnt = 3
for line in map:
# example line:  .........#....#.###.........##.
lineCtr += 1
if lineCtr == 1:
continue
if colCnt >= 31:
print("wrapping...")
colCnt = colCnt - 31
thisChar = line[colCnt]
if thisChar == tree:
treecount += 1
colCnt += 3
#if lineCtr >= 12:
#    break

print("There are " + str(len(map)) + " lines on the map, of which, " + str(treecount) + " have trees in the path.")
``````

Part 2’s Code:

``````# Advent of Code #3 part 2 - What do you get if you multiply together the number of trees
# encountered on each of the listed slopes?
report = ''
global report
report += value + "\n"
def getTrees(down, right):
lineCtr = 1
colCnt = right
treecount = 0
for line in map:
# example line:  .........#....#.###.........##.
addToReport(str(lineCtr) + "     " + line)
if (lineCtr == 1) or (down == 2 and lineCtr == 2):
lineCtr += 1
continue
if (down == 2) and (lineCtr % 2 == 0):
lineCtr += 1
continue
if colCnt >= 31:
colCnt = colCnt - 31
thisChar = line[colCnt]
if thisChar == '#':
treecount += 1
addToReport("thisChar =" + thisChar + "  treecount = " + str(treecount) + "  colCnt = " + str(colCnt))
colCnt += right
lineCtr += 1
print ("trees in loop (" + str(right) + "," + str(down) + ")= " + str(treecount))
return treecount
treesInAllLoops = getTrees(1,1) * getTrees(1,3) * getTrees(1,5) * getTrees(1,7) * getTrees(2,1)
fl = open("3-report.txt", "w")
fl.write(report)
fl.close()
print("There are " + str(treesInAllLoops) + " trees in all paths.")
``````

Cheers!