add initial data

This commit is contained in:
timeshifter committed 2026-09-04 16:08:03 +02:00
commit c4e841b4bc
43 files changed
+5284

No files matched your search

+7
View File
@@ -0,0 +1,7 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "aoc02"
version = "0.1.0"
+8
View File
@@ -0,0 +1,8 @@
[package]
name = "aoc02"
version = "0.1.0"
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
+1000
View File
@@ -0,0 +1,1000 @@
forward 7
down 1
forward 9
forward 4
forward 7
down 8
forward 9
down 2
forward 5
down 3
forward 5
up 7
forward 3
down 7
down 8
up 2
down 4
down 7
forward 1
forward 9
down 9
forward 7
forward 8
up 9
down 6
down 7
forward 1
forward 5
forward 3
down 3
down 4
forward 1
forward 1
forward 7
down 4
forward 6
forward 1
forward 9
forward 4
forward 6
forward 6
down 5
down 4
down 8
up 9
up 9
down 6
down 6
forward 4
forward 1
down 1
forward 7
down 1
forward 3
forward 7
forward 3
up 8
down 7
down 4
forward 7
forward 1
forward 2
down 1
down 4
up 2
up 8
forward 6
forward 5
down 9
up 8
forward 1
up 9
down 7
forward 1
forward 5
up 1
up 7
down 1
down 5
forward 9
down 5
up 5
forward 8
forward 9
down 8
forward 1
down 1
forward 7
down 8
up 4
forward 9
up 1
down 7
forward 4
up 8
down 5
down 2
down 1
forward 5
forward 3
up 5
forward 6
up 1
up 6
up 2
up 6
up 5
down 6
forward 5
down 4
forward 7
up 5
down 3
forward 9
down 5
down 2
up 2
forward 2
down 1
up 3
down 8
forward 8
down 8
forward 6
forward 4
forward 7
forward 6
up 6
down 4
forward 7
forward 9
forward 2
forward 5
down 4
forward 4
forward 9
forward 2
down 2
forward 8
up 8
forward 1
down 6
forward 5
down 4
down 4
down 7
down 5
forward 7
forward 7
down 9
up 9
forward 4
down 2
forward 6
down 4
forward 8
forward 4
up 5
forward 8
down 2
forward 8
forward 6
forward 9
down 7
forward 1
forward 1
forward 1
down 3
forward 2
down 5
forward 3
forward 8
forward 4
forward 7
forward 8
up 7
down 2
up 7
forward 4
forward 7
down 4
down 7
down 3
down 8
forward 2
down 2
forward 2
down 6
forward 2
down 8
forward 2
forward 5
down 5
forward 4
down 7
up 8
up 7
down 2
down 1
forward 4
down 2
forward 9
down 2
down 2
forward 7
forward 3
forward 6
up 8
up 7
forward 1
forward 3
down 9
down 1
forward 8
down 7
up 8
down 3
up 4
forward 9
forward 6
up 6
up 4
down 2
down 4
forward 7
down 2
down 9
forward 1
forward 9
down 6
forward 1
down 8
forward 9
down 9
down 6
up 4
forward 5
up 9
down 2
forward 7
down 1
down 1
down 7
down 4
down 1
down 6
forward 4
forward 6
up 1
down 8
down 4
forward 1
down 5
down 4
up 1
down 9
forward 1
down 1
up 8
forward 8
forward 8
down 5
down 2
down 3
forward 1
down 1
forward 3
down 7
forward 7
forward 1
forward 3
forward 5
forward 3
down 8
forward 1
up 2
up 3
down 4
down 4
up 4
down 4
up 8
down 8
down 7
down 6
forward 5
down 3
forward 2
up 9
down 7
forward 2
down 1
down 3
down 7
down 1
forward 7
down 2
down 9
down 7
up 1
down 5
forward 7
forward 2
forward 7
forward 3
down 2
down 8
up 3
down 3
forward 3
down 2
up 7
up 1
forward 5
down 6
down 3
forward 6
forward 8
forward 2
down 9
down 1
down 1
down 4
forward 8
down 3
up 3
up 4
forward 3
forward 7
down 3
up 6
down 8
up 4
up 3
forward 5
down 9
down 2
forward 6
forward 4
up 6
up 1
forward 4
forward 7
forward 1
forward 8
forward 3
forward 3
forward 9
forward 4
forward 4
forward 4
forward 2
forward 7
down 8
forward 5
up 1
forward 3
forward 7
down 3
forward 7
up 6
forward 4
up 2
down 7
down 4
up 3
up 7
down 1
forward 5
up 7
up 7
down 7
down 9
down 7
forward 5
forward 7
down 1
down 5
down 6
forward 6
up 7
forward 7
forward 6
down 4
down 3
down 9
up 5
down 9
down 3
forward 8
forward 1
forward 5
down 6
forward 7
down 7
forward 8
down 9
up 1
up 2
forward 2
down 4
up 1
forward 2
forward 9
down 8
forward 3
up 3
up 3
forward 3
down 7
down 5
forward 2
up 3
forward 3
forward 5
up 5
forward 3
down 1
down 3
down 6
down 1
forward 7
forward 6
down 5
down 2
forward 7
down 3
forward 2
forward 2
forward 2
down 1
forward 4
forward 5
down 8
up 8
up 7
down 7
forward 9
down 8
forward 1
forward 6
up 3
forward 8
up 9
down 6
down 9
up 4
down 1
forward 1
up 7
down 4
forward 7
forward 4
down 2
forward 3
forward 4
down 7
forward 5
up 8
down 9
down 3
forward 3
forward 8
down 7
forward 1
up 7
down 7
forward 7
down 9
down 6
down 3
down 1
up 5
up 6
forward 8
down 8
up 1
forward 6
up 2
down 6
down 7
down 5
forward 7
up 3
up 6
down 3
up 9
forward 9
down 2
down 4
up 2
forward 7
down 7
up 4
forward 2
down 4
forward 7
up 9
forward 4
forward 9
down 8
up 2
up 2
forward 2
up 8
forward 1
forward 8
forward 8
down 9
forward 6
up 1
down 3
down 4
down 6
forward 6
up 6
down 2
down 1
down 1
forward 9
forward 2
down 7
down 8
down 6
down 3
forward 1
up 6
up 4
forward 3
down 1
forward 6
down 8
forward 6
forward 5
down 3
down 5
up 2
down 7
forward 8
down 8
up 3
down 4
down 3
down 4
up 9
up 6
forward 5
forward 8
down 8
forward 1
forward 8
down 1
down 3
down 4
down 6
forward 3
down 8
down 9
down 3
forward 3
forward 2
forward 2
down 1
up 7
down 6
up 2
down 9
down 4
down 3
down 5
down 4
forward 4
up 8
forward 1
down 9
down 3
down 3
down 8
down 5
up 6
up 5
down 7
down 3
down 7
forward 1
up 5
down 1
forward 1
down 7
down 9
down 3
forward 1
forward 7
down 8
forward 5
up 5
forward 2
down 6
forward 2
down 2
forward 2
up 7
down 2
down 5
down 2
forward 7
forward 2
forward 4
down 2
down 7
down 6
forward 9
down 8
down 3
down 6
forward 7
down 3
down 4
down 7
down 7
down 1
up 8
up 7
up 6
down 8
up 8
forward 8
down 2
down 4
forward 7
forward 4
down 5
down 4
down 3
forward 6
up 9
down 1
down 3
down 4
down 7
up 3
up 4
forward 1
up 4
down 9
up 4
up 3
down 1
down 2
forward 5
up 4
down 1
down 4
down 8
down 1
up 6
down 6
forward 8
forward 7
down 5
down 6
down 5
down 6
down 9
forward 6
down 6
down 7
forward 3
down 2
down 9
up 2
down 6
forward 2
forward 6
forward 4
down 4
forward 8
forward 2
forward 7
forward 4
down 9
forward 6
down 6
forward 1
down 4
down 5
forward 5
up 5
forward 7
up 2
down 9
forward 9
down 9
forward 9
forward 3
forward 7
forward 5
forward 1
down 5
forward 5
down 3
down 2
up 9
down 7
down 2
forward 3
down 8
down 6
down 7
up 5
up 9
down 6
down 8
down 5
down 8
forward 4
forward 5
down 2
down 1
forward 6
down 6
forward 9
forward 2
forward 1
down 3
forward 8
forward 6
up 7
forward 5
down 4
up 7
down 6
down 3
up 8
forward 5
forward 5
down 1
down 7
forward 2
down 5
forward 3
forward 6
forward 6
up 5
down 4
down 2
forward 7
up 8
forward 5
up 7
forward 6
forward 6
forward 6
up 7
down 1
down 4
down 4
forward 5
down 5
up 7
down 7
forward 8
down 6
down 2
forward 3
down 8
up 3
down 2
forward 7
down 1
forward 3
up 1
up 4
down 4
up 6
down 1
down 2
forward 9
up 8
forward 3
down 2
forward 3
down 7
up 6
forward 9
down 3
down 9
up 5
down 9
down 6
forward 8
forward 5
down 8
forward 5
forward 9
up 1
down 3
up 2
down 1
down 2
down 8
forward 9
forward 9
down 7
down 7
down 5
down 1
down 7
up 1
up 1
forward 8
down 6
up 8
down 7
down 1
forward 1
forward 4
down 9
up 2
down 6
forward 2
down 4
forward 7
up 8
down 3
forward 9
down 7
up 7
down 6
down 9
down 2
up 7
down 3
down 9
forward 7
down 7
up 6
down 5
down 4
up 1
down 1
up 7
up 9
down 1
forward 6
forward 3
down 5
down 1
up 8
forward 9
forward 6
down 1
up 3
down 2
forward 3
up 6
down 5
down 3
up 7
down 8
down 5
down 3
forward 6
up 8
down 4
forward 3
forward 5
forward 9
forward 1
up 4
forward 8
forward 9
forward 1
up 9
up 4
forward 4
forward 4
forward 8
up 5
up 2
down 7
down 4
up 5
down 5
forward 6
up 8
down 5
down 7
down 3
up 2
up 2
forward 3
forward 5
forward 1
forward 9
forward 1
down 2
down 2
up 6
up 6
down 5
down 3
down 4
forward 4
down 6
up 6
forward 8
down 9
forward 2
forward 6
down 7
forward 3
down 2
down 5
up 3
forward 6
forward 7
forward 3
forward 4
down 9
up 9
forward 7
down 8
forward 1
down 2
up 5
up 9
forward 8
up 5
forward 7
up 6
forward 9
down 6
forward 4
down 4
forward 7
up 8
down 8
down 7
down 9
up 1
down 5
forward 6
down 9
down 2
down 2
down 6
down 6
forward 8
forward 5
up 7
forward 9
forward 3
forward 8
forward 8
down 7
up 1
down 4
forward 7
up 5
down 9
down 7
forward 8
down 3
up 2
down 7
forward 3
up 8
forward 4
up 2
forward 1
forward 4
forward 5
forward 3
forward 6
down 9
up 7
forward 7
up 6
down 2
down 5
forward 2
forward 8
down 3
forward 6
down 6
forward 4
up 3
forward 3
down 4
up 3
forward 6
forward 7
down 5
forward 5
down 9
forward 7
down 5
down 6
forward 9
+77
View File
@@ -0,0 +1,77 @@
trait Move {
fn single_command(&mut self, direction: Direction, amount: i32);
fn multiple_commands(&mut self, sequence_of_movements: Vec<(Direction, i32)>);
fn result(&mut self) -> i32;
}
#[derive(Debug)]
struct Submarine{
horizontal: i32,
depth: i32,
aim: i32,
}
impl Move for Submarine {
fn single_command(&mut self, direction: Direction, amount: i32) {
println!("{:?} {}", direction, amount);
if direction == Direction::Down {
self.aim += amount;
} else if direction == Direction::Up {
self.aim -= amount;
} else if direction == Direction::Forward {
self.horizontal += amount;
self.depth += self.aim * amount;
}
}
fn multiple_commands(&mut self, sequence_of_movements: Vec<(Direction, i32)>) {
for (direction, amount) in sequence_of_movements {
println!("{:#?}", self);
self.single_command(direction, amount);
}
}
fn result(&mut self) -> i32 {
return self.horizontal * self.depth
}
}
#[derive(Debug, PartialEq)]
enum Direction{
Down,
Up,
Forward,
Unknown,
}
fn main() {
let sequence_of_movements = read_sequence_of_movements("data.txt");
let mut submarine = Submarine{ horizontal: 0, depth: 0, aim: 0};
submarine.multiple_commands(sequence_of_movements);
println!("result: {}", submarine.result());
}
fn read_sequence_of_movements(filename: &str) -> Vec<(Direction, i32)> {
let data = std::fs::read_to_string(filename).unwrap();
let mut sequence_of_movements: Vec<(Direction, i32)> = Vec::new();
for line in data.lines() {
let direction = line.split(" ")
.nth(0)
.unwrap();
let direction_actual = match direction {
"down" => Direction::Down,
"up" => Direction::Up,
"forward" => Direction::Forward,
_ => Direction::Unknown,
};
let amount = line.split(" ")
.nth(1)
.unwrap()
.parse::<i32>()
.unwrap();
sequence_of_movements.push((direction_actual, amount))
}
return sequence_of_movements
}
+6
View File
@@ -0,0 +1,6 @@
forward 5
down 5
forward 8
up 3
down 8
forward 2