library(tidyverse)
input <- read_lines(file = "inputs/2022/02.txt")
guide <- tibble(original = input) |>
separate_wider_delim(cols = original,
delim = " ",
names = c("opponent", "me")) |>
mutate(opponent = case_match(opponent,
"A" ~ "Rock",
"B" ~ "Paper",
"C" ~ "Scissors"),
me = case_match(me,
"X" ~ "Rock",
"Y" ~ "Paper",
"Z" ~ "Scissors"))
score <- function(opponent, me) {
if (me == "Rock")
score <- 1 + case_match(opponent,
"Rock" ~ 3,
"Paper" ~ 0,
"Scissors" ~ 6)
else if (me == "Paper")
score <- 2 + case_match(opponent,
"Rock" ~ 6,
"Paper" ~ 3,
"Scissors" ~ 0)
else if (me == "Scissors")
score <- 3 + case_match(opponent,
"Rock" ~ 0,
"Paper" ~ 6,
"Scissors" ~ 3)
return(score)
}
guide |>
mutate(score = map2_int(opponent, me, score)) |>
summarise(total = sum(score)) |>
pull(total) |>
cat()
## 12458Day 2: Rock Paper Scissors
Part One
Part Two
guide <- tibble(original = input) |>
separate_wider_delim(cols = original,
delim = " ",
names = c("opponent", "outcome")) |>
mutate(opponent = case_match(opponent,
"A" ~ "Rock",
"B" ~ "Paper",
"C" ~ "Scissors"),
outcome = case_match(outcome,
"X" ~ "lose",
"Y" ~ "draw",
"Z" ~ "win"))
me <- function(opponent, outcome) {
if (opponent == "Rock")
me <- case_match(outcome,
"lose" ~ "Scissors",
"draw" ~ "Rock",
"win" ~ "Paper")
else if (opponent == "Paper")
me <- case_match(outcome,"lose" ~ "Rock",
"draw" ~ "Paper",
"win" ~ "Scissors")
else if (opponent == "Scissors")
me <- case_match(outcome,
"lose" ~ "Paper",
"draw" ~ "Scissors",
"win" ~ "Rock")
return(me)
}
guide |>
mutate(me = map2_chr(opponent, outcome, me),
score = map2_int(opponent, me, score)) |>
summarise(total = sum(score)) |>
pull(total) |>
cat()
## 12683