Day 25 part 1

This commit is contained in:
2022-10-08 12:47:58 +02:00
parent 0089f4337c
commit 14fc032ffc
5 changed files with 48 additions and 1 deletions

1
input/day25.txt Normal file

File diff suppressed because one or more lines are too long

View File

@@ -3,5 +3,5 @@ extern crate core;
mod tasks;
fn main() {
tasks::day23::run();
tasks::day25::run();
}

View File

@@ -2,6 +2,7 @@ use std::collections::VecDeque;
use crate::tasks::day05::{IntCodeComputer, load_ram, RAM};
#[allow(dead_code)]
pub fn run() {
let ram = load_ram("input/day23.txt");
part1(ram.clone());

44
src/tasks/day25.rs Normal file
View File

@@ -0,0 +1,44 @@
use std::io;
use crate::tasks::day05::{IntCodeComputer, load_ram};
#[allow(dead_code)]
pub fn run() {
let ram = load_ram("input/day25.txt");
let mut computer = IntCodeComputer::new(vec![], ram);
loop {
let done = computer.run_until_input_empty();
println!("{}", to_ascii(computer.get_output()));
computer.clear_output();
if done {
println!("Game Over");
return;
}
let input = read_line();
computer.set_input(&input);
}
// needed items:
// fixed point
// polygon
// candy cane
// shell
// result: 136839232
}
fn to_ascii(output: &[i128]) -> String {
output.iter().map(|i| (*i as u8) as char).collect()
}
fn read_line() -> Vec<i128> {
let mut buffer = String::new();
io::stdin().read_line(&mut buffer).unwrap();
if !buffer.is_ascii() {
panic!("'{}' is not ascii input", buffer);
}
buffer.chars().map(|c| c as i128).collect()
}

View File

@@ -22,3 +22,4 @@ pub mod day21;
pub mod day22;
pub mod day23;
pub mod day24;
pub mod day25;