Beginning of day 5
authorGrégory Burri <gregory.burri@matisa.ch>
Mon, 9 Dec 2019 06:37:03 +0000 (07:37 +0100)
committerGrégory Burri <gregory.burri@matisa.ch>
Mon, 9 Dec 2019 06:37:03 +0000 (07:37 +0100)
src/day02.rs
src/day05.rs [new file with mode: 0644]
src/main.rs

index 9db5379..81dfaaf 100644 (file)
@@ -1,10 +1,10 @@
-pub fn execute_op_code_with_state_fixed(code : &mut [i32]) -> i32 {\r
+pub fn execute_op_code_with_state_fixed(code: &mut [i32]) -> i32 {\r
     code[1] = 12;\r
     code[2] = 2;\r
     execute_op_code(code)\r
 }\r
 \r
-fn execute_op_code(code : &mut [i32]) -> i32 {\r
+fn execute_op_code(code: &mut [i32]) -> i32 {\r
     let mut cursor = 0;\r
     loop {\r
         match code[cursor] {\r
@@ -17,7 +17,7 @@ fn execute_op_code(code : &mut [i32]) -> i32 {
     }\r
 }\r
 \r
-pub fn find_noun_and_verb(code : &[i32]) -> i32 {\r
+pub fn find_noun_and_verb(code: &[i32]) -> i32 {\r
     loop {\r
         for verb in 0..=99 {\r
             for noun in 0..=99 {\r
diff --git a/src/day05.rs b/src/day05.rs
new file mode 100644 (file)
index 0000000..1ff5739
--- /dev/null
@@ -0,0 +1,33 @@
+fn read_code(code: i32) -> (i32, Vec<bool>) {\r
+\r
+}\r
+\r
+fn execute_op_code(code: &mut [i32], input: &[i32]) -> Vec<i32> {\r
+    let mut cursor = 0;\r
+    let mut output = Vec::<i32>::new();\r
+    loop {\r
+        match code[cursor] {\r
+            1 => code[code[cursor + 3] as usize] = code[code[cursor + 1] as usize] + code[code[cursor + 2] as usize],\r
+            2 => code[code[cursor + 3] as usize] = code[code[cursor + 1] as usize] * code[code[cursor + 2] as usize],\r
+            99 => return code[0],\r
+            _ => panic!("Unkown code: {}", code[cursor])\r
+        }\r
+        cursor += 4;\r
+    }\r
+}\r
+\r
+\r
+\r
+\r
+#[cfg(test)]\r
+mod tests {\r
+    use super::*;\r
+\r
+    #[test]\r
+    fn part1() {\r
+    }\r
+\r
+    #[test]\r
+    fn part2() {\r
+    }\r
+}
\ No newline at end of file
index b508728..f00a372 100644 (file)
@@ -5,6 +5,7 @@ use std::time::Instant;
 mod day01;
 mod day02;
 mod day03;
+mod day05;
 mod common;
 
 fn day01() -> String {