79 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|                                            Advent of Code
 | ||
| 
 | ||
|    br0xen 43*
 | ||
| 
 | ||
|      • [About]
 | ||
|      • [Stats]
 | ||
|      • [Leaderboard]
 | ||
|      • [Settings]
 | ||
|      • [Log out]
 | ||
| 
 | ||
| --- Day 23: Opening the Turing Lock ---
 | ||
| 
 | ||
|    Little Jane Marie just got her very first computer for Christmas from some unknown benefactor.
 | ||
|    It comes with instructions and an example program, but the computer itself seems to be
 | ||
|    malfunctioning. She's curious what the program does, and would like you to help her run it.
 | ||
| 
 | ||
|    The manual explains that the computer supports two registers and six instructions (truly, it
 | ||
|    goes on to remind the reader, a state-of-the-art technology). The registers are named a and b,
 | ||
|    can hold any non-negative integer, and begin with a value of 0. The instructions are as
 | ||
|    follows:
 | ||
| 
 | ||
|      • hlf r sets register r to half its current value, then continues with the next instruction.
 | ||
|      • tpl r sets register r to triple its current value, then continues with the next
 | ||
|        instruction.
 | ||
|      • inc r increments register r, adding 1 to it, then continues with the next instruction.
 | ||
|      • jmp offset is a jump; it continues with the instruction offset away relative to itself.
 | ||
|      • jie r, offset is like jmp, but only jumps if register r is even ("jump if even").
 | ||
|      • jio r, offset is like jmp, but only jumps if register r is 1 ("jump if one", not odd).
 | ||
| 
 | ||
|    All three jump instructions work with an offset relative to that instruction. The offset is
 | ||
|    always written with a prefix + or - to indicate the direction of the jump (forward or
 | ||
|    backward, respectively). For example, jmp +1 would simply continue with the next instruction,
 | ||
|    while jmp +0 would continuously jump back to itself forever.
 | ||
| 
 | ||
|    The program exits when it tries to run an instruction beyond the ones defined.
 | ||
| 
 | ||
|    For example, this program sets a to 2, because the jio instruction causes it to skip the tpl
 | ||
|    instruction:
 | ||
| 
 | ||
|  inc a
 | ||
|  jio a, +2
 | ||
|  tpl a
 | ||
|  inc a
 | ||
| 
 | ||
|    What is the value in register b when the program in your puzzle input is finished executing?
 | ||
| 
 | ||
|    Your puzzle answer was 255.
 | ||
| 
 | ||
|    The first half of this puzzle is complete! It provides one gold star: *
 | ||
| 
 | ||
| --- Part Two ---
 | ||
| 
 | ||
|    The unknown benefactor is very thankful for releasi-- er, helping little Jane Marie with her
 | ||
|    computer. Definitely not to distract you, what is the value in register b after the program is
 | ||
|    finished executing if register a starts as 1 instead?
 | ||
| 
 | ||
|    Although it hasn't changed, you can still get your puzzle input.
 | ||
| 
 | ||
|    Answer: _____________________ [ [Submit] ]
 | ||
| 
 | ||
|    You can also [Shareon Twitter Google+ Reddit] this puzzle.
 | ||
| 
 | ||
| References
 | ||
| 
 | ||
|    Visible links
 | ||
|    . http://adventofcode.com/
 | ||
|    . http://adventofcode.com/about
 | ||
|    . http://adventofcode.com/stats
 | ||
|    . http://adventofcode.com/leaderboard
 | ||
|    . http://adventofcode.com/settings
 | ||
|    . http://adventofcode.com/auth/logout
 | ||
|    . https://en.wikipedia.org/wiki/Processor_register
 | ||
|    . https://en.wikipedia.org/wiki/Instruction_set
 | ||
|    . https://en.wikipedia.org/wiki/Natural_number
 | ||
|    . http://adventofcode.com/day/23/input
 | ||
|    . https://twitter.com/intent/tweet?text=I%27ve+completed+Part+One+of+%22Opening+the+Turing+Lock%22+%2D+Day+23+%2D+Advent+of+Code&url=http%3A%2F%2Fadventofcode%2Ecom%2Fday%2F23&related=ericwastl&hashtags=AdventOfCode
 | ||
|    . https://plus.google.com/share?url=http%3A%2F%2Fadventofcode%2Ecom%2Fday%2F23
 | ||
|    . http://www.reddit.com/submit?url=http%3A%2F%2Fadventofcode%2Ecom%2Fday%2F23&title=I%27ve+completed+Part+One+of+%22Opening+the+Turing+Lock%22+%2D+Day+23+%2D+Advent+of+Code
 |