Browse Source

Day 2-1

trunk
Shanti Chellaram 3 years ago
parent
commit
918aaab8a6
  1. 31
      day2.erl

31
day2.erl

@ -0,0 +1,31 @@
-module(day2).
-export([solve/1]).
solve(InputData) ->
RoundData = binary:split(InputData, <<$\n>>, [trim_all, global]),
Rounds = lists:map(fun parse_round/1, RoundData),
RoundPoints = lists:map(fun score_round/1, Rounds),
{lists:sum(RoundPoints), none}.
parse_round(<<TheirCode, $\s, YourCode>>) -> {parse_theirs(TheirCode), parse_yours(YourCode)}.
score_round(Round = {_Theirs, Yours}) -> round_points(Round) + shape_points(Yours).
parse_theirs($A) -> rock;
parse_theirs($B) -> paper;
parse_theirs($C) -> scissors.
parse_yours($X) -> rock;
parse_yours($Y) -> paper;
parse_yours($Z) -> scissors.
round_points({rock, paper}) -> 6;
round_points({paper, scissors}) -> 6;
round_points({scissors, rock}) -> 6;
round_points({Shape, Shape}) -> 3;
round_points({_Theirs, _Yours}) -> 0.
shape_points(rock) -> 1;
shape_points(paper) -> 2;
shape_points(scissors) -> 3.
Loading…
Cancel
Save