Files
aoc24/day17/d17p1.swift
2024-12-16 23:45:39 -08:00

46 lines
814 B
Swift

import Foundation
/*
0 adv: A / 2^OP -> A
1 bxl: B xor LIT -> B
2 bst: OP % 8 -> B
3 jnz: jump LIT if A != 0
4 bxc: B xor C -> B (ignore op/lit)
5 out: OP % 8 -> screen
6 bdv: A / 2^OP -> B
7 cdv: A / 2^OP -> C
adv 1 // A = A / 2
out A // print(A % 8)
jnz 0 // loop while A != 0
2,4, 1,1, 7,5, 1,5, 4,0, 5,5, 0,3, 3,0
bst 4 // B = A % 8
bxl 1 // B = B xor 1
cdv 5 // C = A / 2^B
bxl 5 // B = B xor 5
bxc 0 // B = B xor C
out 5 // print(B % 8)
adv 3 // A = A / 2^3
jnz 0 // loop while A != 0
*/
// let prog = [2,4, 1,1, 7,5, 1,5, 4,0, 5,5, 0,3, 3,0]
//var A = 164279024971709
var A = 164279024971453
var B = 0
var C = 0
while true {
B = A % 8 // 1
B = B ^ 1 // 2
C = A >> B // 3
B = B ^ 5 // 4
B = B ^ C // 5
print(B % 8, terminator: ",")
A = A >> 3
if A == 0 { break }
}