This commit is contained in:
Rarapony 2022-12-03 16:53:49 -05:00
parent 31cc87e7e9
commit 3f56e96f57
3 changed files with 2605 additions and 2 deletions

7
day2/Cargo.lock generated Normal file
View File

@ -0,0 +1,7 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "day2"
version = "0.1.0"

2500
day2/input.txt Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,99 @@
fn main() { use std::fs;
println!("Hello, world!"); use std::io::Error;
use std::slice::Split;
/*
Mi:
A: 1 for rock
B: 2 for paper
C: 3 for scissors
U:
X: 1 for rock
Y: 2 for paper
Z: 3 for scissors
pts:
0: Loss
3: Tie
6: Win
*/
fn calc(result: Vec<&str>) {
let mut score: i32 = 0;
let mut score2: i32 = 0;
let mut new_vec: Vec<Vec<&str>> = [].to_vec();
result.iter().map(|x| {
let mut arr: Vec<_> = x.split(" ").collect();
if arr[0] == "A" { arr[0] = "1"; };
if arr[0] == "B" { arr[0] = "2"; };
if arr[0] == "C" { arr[0] = "3"; };
if arr[1] == "X" { arr[1] = "1"; };
if arr[1] == "Y" { arr[1] = "2"; };
if arr[1] == "Z" { arr[1] = "3"; };
let pick_points: i32 = arr[1].parse().unwrap();
score = score + pick_points;
if arr[0] == arr[1] {
score = score + 3;
} else {
let rock_win: Vec<_> = ["3", "1"].to_vec();
let paper_win: Vec<_> = ["1", "2"].to_vec();
let scissors_win: Vec<_> = ["2", "3"].to_vec();
if rock_win == arr { score = score + 6; };
if paper_win == arr { score = score + 6; };
if scissors_win == arr { score = score + 6; };
};
if arr[1] == "2" {
new_vec.push([arr[0], arr[0]].to_vec())
} else if arr[1] == "1" {
if arr[0] == "1" { new_vec.push([arr[0], "3"].to_vec()) }
if arr[0] == "2" { new_vec.push([arr[0], "1"].to_vec()) }
if arr[0] == "3" { new_vec.push([arr[0], "2"].to_vec()) }
} else if arr[1] == "3" {
if arr[0] == "3" { new_vec.push([arr[0], "1"].to_vec()) }
if arr[0] == "1" { new_vec.push([arr[0], "2"].to_vec()) }
if arr[0] == "2" { new_vec.push([arr[0], "3"].to_vec()) }
} else { println!("fail") }
}).collect::<()>();
for i in new_vec.iter() {
let pick_points: i32 = i[1].parse().unwrap();
score2 = score2 + pick_points;
if i[0] == i[1] {
score2 = score2 + 3;
} else {
let rock_win: Vec<_> = ["3", "1"].to_vec();
let paper_win: Vec<_> = ["1", "2"].to_vec();
let scissors_win: Vec<_> = ["2", "3"].to_vec();
if &rock_win == i { score2 = score2 + 6; };
if &paper_win == i { score2 = score2 + 6; };
if &scissors_win == i { score2 = score2 + 6; };
};
}
println!("{:?}", score);
println!("{:?}", score2);
} }
fn main() {
let input = fs::read_to_string("input.txt").expect("fuck me sideways");
let result: Vec<_> = input.split("\n").collect();
calc(result);
}