Switch to using a queue for character devices
This commit is contained in:
@@ -14,19 +14,20 @@ pub fn main() anyerror!void {
|
||||
var m1 = try intcode.Machine.init(alloc, p1);
|
||||
var m2 = try intcode.Machine.init(alloc, p2);
|
||||
|
||||
std.debug.warn("Part 1\n");
|
||||
try m1.input.append(1); // Air conditioner unit
|
||||
try m1.writeToInput(1); // Air conditioner unit
|
||||
try m1.run();
|
||||
|
||||
for (m1.output.toSlice()) |value, idx| {
|
||||
std.debug.warn("Test {}: {}\n", idx, value);
|
||||
var out: i32 = 0;
|
||||
while (m1.readFromOutput(false)) |item| {
|
||||
out = item;
|
||||
} else |err| {
|
||||
std.debug.assert(err == std.os.ReadError.WouldBlock);
|
||||
}
|
||||
|
||||
std.debug.warn("\nPart 2\n");
|
||||
try m2.input.append(5); // Thermal radiator controller
|
||||
std.debug.warn("Day 5, Part 1: {}\n", out);
|
||||
|
||||
try m2.writeToInput(5); // Thermal radiator controller
|
||||
try m2.run();
|
||||
|
||||
for (m2.output.toSlice()) |value, idx| {
|
||||
std.debug.warn("Test {}: {}\n", idx, value);
|
||||
}
|
||||
std.debug.warn("Day 5, Part 2: {}\n", try m2.readFromOutput(false));
|
||||
}
|
||||
|
Reference in New Issue
Block a user