From bade90726a3beb7a4c4eaade292e6ba0714c506c Mon Sep 17 00:00:00 2001 From: Ariadne Engelbrecht Date: Mon, 3 Apr 2023 15:31:34 +0200 Subject: [PATCH 1/4] Rewrite math and programmatic logic, and readme accordingly. --- livebooks/elixir_ASCII_easteregg.livemd | 45 +++++++++++++++++++++++++ livebooks/elixir_ASCII_heart.livemd | 11 +++--- 2 files changed, 52 insertions(+), 4 deletions(-) create mode 100644 livebooks/elixir_ASCII_easteregg.livemd diff --git a/livebooks/elixir_ASCII_easteregg.livemd b/livebooks/elixir_ASCII_easteregg.livemd new file mode 100644 index 0000000..331fa60 --- /dev/null +++ b/livebooks/elixir_ASCII_easteregg.livemd @@ -0,0 +1,45 @@ +# Elixir goes ASCII Art ¯\_(ツ)_/¯: The easter egg + +## It's (nerdy) easter time! + +The aim is to create an egg-shaped pattern in your terminal that is made up of characters from the given string Elixir. + +The following code achieves that by using a combination of mathematical equations and string manipulation techniques. + +You'll find a step-by-step breakdown after the code. Let's go! + +```elixir +defmodule EasterEgg do + @egg String.graphemes("Elixir ") + + def character_at(x, y) do + index = rem(x - y, length(@egg)) + char = Enum.at(@egg, index) + + case math_power(x, y) do + true -> char + false -> " " + end + end + + def math_power(x, y) do + case y > 0 do + true -> :math.pow(x / 2.5, 2) + :math.pow(y / 2, 2) <= 100 + false -> :math.pow(x / 2.5, 2) + :math.pow(y / 1, 2) <= 100 + end + end + + def patch_together() do + -13..23 + |> Enum.map(fn y -> + -30..30 + |> Enum.map(fn x -> EasterEgg.character_at(x, y) end) + |> Enum.join("") + end) + |> Enum.reverse() + |> Enum.join("\n") + end +end + +IO.puts(EasterEgg.patch_together()) +``` diff --git a/livebooks/elixir_ASCII_heart.livemd b/livebooks/elixir_ASCII_heart.livemd index 6c65bd0..f60ce38 100644 --- a/livebooks/elixir_ASCII_heart.livemd +++ b/livebooks/elixir_ASCII_heart.livemd @@ -1,4 +1,4 @@ -# Elixir goes ASCII Art ¯\_(ツ)_/¯ +# Elixir goes ASCII Art ¯\_(ツ)_/¯: The Heart. ## We💜Elixir, right? @@ -55,11 +55,14 @@ The code is split into 5 parts: 3. The function `math_power` takes two arguments, x and y, and returns a boolean, indicating whether the point (x, y) is inside the heart shape or not. * This is the basic mathematical formula for our heart: ((x)² + (y)^2 - 1)³ - (x)² * (y)³ <= 0 + * The ((x)² + (y)² - 1)³ part describes a circle, the (x)² * (y)³ part descibes a cube. + * Subtract the (x)² * (y)³ part from the ((x)² + (y)² - 1)³ part and less-than-or-equal it to 0 to get the shape of a heart. + * To play around with this math part, visit: -1. The function `patch_together` is the main function that creates the heart shape. It does so by: +4. The function `patch_together` is the main function that creates the heart shape. It does so by: * maps over a range of y values, and for each y value, again maps over a range of x values in order to create a row of characters for that specific y value. @@ -69,8 +72,8 @@ The code is split into 5 parts: * joins all the rows with a newline character to form the complete heart shape. -1. The last section of the code calls the `patch_together` function and prints the result to the terminal. +5. The last section of the code calls the `patch_together` function and prints the result to the terminal. -![](images/elixir_ascii_heart.png) +![](images/ASCII_heart.png) From a7b89edf7836e912d17f673202dab5e959d03cd4 Mon Sep 17 00:00:00 2001 From: Ariadne Engelbrecht Date: Mon, 3 Apr 2023 15:39:31 +0200 Subject: [PATCH 2/4] Add livebook for easter egg shape. --- livebooks/elixir_ASCII_easteregg.livemd | 30 +++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/livebooks/elixir_ASCII_easteregg.livemd b/livebooks/elixir_ASCII_easteregg.livemd index 331fa60..185ecb1 100644 --- a/livebooks/elixir_ASCII_easteregg.livemd +++ b/livebooks/elixir_ASCII_easteregg.livemd @@ -43,3 +43,33 @@ end IO.puts(EasterEgg.patch_together()) ``` + +## Let's break it down + +The definition of the module `EasterEgg` contains the module attribute `egg`, and the functions `character_at`, `math_power`, and `patch_together`. + +The code is split into 5 parts: + +1. The module attribute `egg` stores the string "Elixir ", chopped into its chars. (… of course, you can change the value to whatever you want, however, paying homage to our beloved Elixir lang seemed kinda fitting to start with 🙃) + +2. The function `character_at` calculates the index of the character in the @egg string using the modulo operator (which returns the remainder of the division of its first argument by its second argument) and the length of the string. + +3. The function `math_power` takes two arguments, x and y, and returns a boolean, indicating whether the point (x, y) is inside the egg shape or not. + +* It's based on the mathematical formula for an ellipse x²/b² + y²/a² = 1 + +* We stitch together two ellipses to form an egg shape, depending on whether y > 0. For values meeting that condition, the shape gets broader, and for values not meeting that condition, the shape gets narrower. + +* To play around with this math part, visit: + +1. The function `patch_together` is the main function that creates the egg shape. It does so by: + +* maps over a range of y values, and for each y value, again maps over a range of x values in order to create a row of characters for that specific y value. + +* joins the characters in each of those rows to form a string. + +* reverses the order of all the rows to make the egg point upwards. + +* joins all the rows with a newline character to form the complete egg shape. + +1. The last section of the code calls the `patch_together` function and prints the result to the terminal. From 2d16d3f337eae5b12c5e4666a2d3e3122eb44821 Mon Sep 17 00:00:00 2001 From: Ariadne Engelbrecht Date: Mon, 3 Apr 2023 15:45:41 +0200 Subject: [PATCH 3/4] Add image of ASCII easter egg. --- livebooks/elixir_ASCII_easteregg.livemd | 4 ++++ livebooks/images/ASCII_egg_elixir.png | Bin 0 -> 70593 bytes 2 files changed, 4 insertions(+) create mode 100644 livebooks/images/ASCII_egg_elixir.png diff --git a/livebooks/elixir_ASCII_easteregg.livemd b/livebooks/elixir_ASCII_easteregg.livemd index 185ecb1..c8d1c6c 100644 --- a/livebooks/elixir_ASCII_easteregg.livemd +++ b/livebooks/elixir_ASCII_easteregg.livemd @@ -73,3 +73,7 @@ The code is split into 5 parts: * joins all the rows with a newline character to form the complete egg shape. 1. The last section of the code calls the `patch_together` function and prints the result to the terminal. + + + +![](images/ASCII_egg_elixir.png) diff --git a/livebooks/images/ASCII_egg_elixir.png b/livebooks/images/ASCII_egg_elixir.png new file mode 100644 index 0000000000000000000000000000000000000000..f4135a17f00a3bfe84f83a1685bd281e229dc6be GIT binary patch literal 70593 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 z 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 E4+{=jqW}N^ literal 0 HcmV?d00001 From 9ea410d6d6f6b68e3bea4306671e96b8901b6953 Mon Sep 17 00:00:00 2001 From: Ariadne Engelbrecht Date: Tue, 4 Apr 2023 17:49:52 +0200 Subject: [PATCH 4/4] Changed logic from case-statement to 2 function clauses, one of which with a guard. --- livebooks/elixir_ASCII_easteregg.livemd | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/livebooks/elixir_ASCII_easteregg.livemd b/livebooks/elixir_ASCII_easteregg.livemd index c8d1c6c..ff72957 100644 --- a/livebooks/elixir_ASCII_easteregg.livemd +++ b/livebooks/elixir_ASCII_easteregg.livemd @@ -22,12 +22,8 @@ defmodule EasterEgg do end end - def math_power(x, y) do - case y > 0 do - true -> :math.pow(x / 2.5, 2) + :math.pow(y / 2, 2) <= 100 - false -> :math.pow(x / 2.5, 2) + :math.pow(y / 1, 2) <= 100 - end - end + def math_power(x, y) when y > 0, do: :math.pow(x / 2.5, 2) + :math.pow(y / 2, 2) <= 100 + def math_power(x, y), do: :math.pow(x / 2.5, 2) + :math.pow(y / 1, 2) <= 100 def patch_together() do -13..23