minor fixes
This commit is contained in:
@@ -1,9 +1,52 @@
|
||||
-module(day2).
|
||||
|
||||
-export ([solve/1, solve/2]).
|
||||
-export ([solve/0, solve/1, solve/2]).
|
||||
|
||||
solve() ->
|
||||
solve(['1']),
|
||||
solve(['2']),
|
||||
init:stop().
|
||||
|
||||
solve(A) ->
|
||||
D = [
|
||||
solve(A, get_data()).
|
||||
|
||||
solve(['1'], D) ->
|
||||
io:format("The solution to ~p puzzle1 is: ~p~n", [?MODULE, solve(1, D)]);
|
||||
solve(1, D) ->
|
||||
solution1(D);
|
||||
solve(['2'], D) ->
|
||||
io:format("The solution to ~p puzzle2 is: ~p~n", [?MODULE, solve(2, D)]);
|
||||
solve(2, D) ->
|
||||
solution2(D).
|
||||
|
||||
solution1(D) ->
|
||||
{X, Y} =
|
||||
lists:foldl(fun({Dir, Dis}, {X, Y}) ->
|
||||
case Dir of
|
||||
'up' -> {X, Y - Dis};
|
||||
'down' -> {X, Y + Dis};
|
||||
'forward' -> {X + Dis, Y}
|
||||
end
|
||||
end,
|
||||
{0, 0},
|
||||
D),
|
||||
X * Y.
|
||||
|
||||
solution2(D) ->
|
||||
{X, Y, _} =
|
||||
lists:foldl(fun({Dir, Dis}, {X, Y, Aim}) ->
|
||||
case Dir of
|
||||
'up' -> {X, Y, Aim - Dis};
|
||||
'down' -> {X, Y, Aim + Dis};
|
||||
'forward' -> {X + Dis, Y + (Dis * Aim), Aim}
|
||||
end
|
||||
end,
|
||||
{0,0,0},
|
||||
D),
|
||||
X * Y.
|
||||
|
||||
get_data() ->
|
||||
[
|
||||
{forward, 3},
|
||||
{down, 4},
|
||||
{forward, 3},
|
||||
@@ -1004,36 +1047,4 @@ solve(A) ->
|
||||
{forward, 5},
|
||||
{forward, 3},
|
||||
{forward, 7}
|
||||
],
|
||||
|
||||
solve(A, D).
|
||||
|
||||
solve(['1'], D) ->
|
||||
io:format("The solution to puzzle day2 is: ~p", [solve(1, D)]);
|
||||
solve(1, D) ->
|
||||
{X, Y} =
|
||||
lists:foldl(fun({Dir, Dis}, {X, Y}) ->
|
||||
case Dir of
|
||||
'up' -> {X, Y - Dis};
|
||||
'down' -> {X, Y + Dis};
|
||||
'forward' -> {X + Dis, Y}
|
||||
end
|
||||
end,
|
||||
{0, 0},
|
||||
D),
|
||||
X * Y;
|
||||
solve(['2'], D) ->
|
||||
io:format("The solution to puzzle day2 is: ~p", [solve(2, D)]);
|
||||
solve(2, D) ->
|
||||
{X, Y, _} =
|
||||
lists:foldl(fun({Dir, Dis}, {X, Y, Aim}) ->
|
||||
case Dir of
|
||||
'up' -> {X, Y, Aim - Dis};
|
||||
'down' -> {X, Y, Aim + Dis};
|
||||
'forward' -> {X + Dis, Y + (Dis * Aim), Aim}
|
||||
end
|
||||
end,
|
||||
{0,0,0},
|
||||
D),
|
||||
X * Y.
|
||||
|
||||
].
|
||||
|
||||
Reference in New Issue
Block a user