Last active
December 9, 2022 06:41
-
-
Save rpearce/008cb2af586d6c8a2dc2422454eb501c to your computer and use it in GitHub Desktop.
bday text game gift for my sister
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
set -o errexit | |
set -o errtrace | |
set -o nounset | |
set -eou pipefail | |
function clearscreen { | |
printf '\033c' | |
} | |
function welcome { | |
cat <<EOF | |
--------------------------- | |
| | | |
| Welcome to | | |
| | | |
| Kathryn's | | |
| | | |
| Birthday Challenge! | | |
| | | |
--------------------------- | |
EOF | |
} | |
function overview { | |
cat <<EOF | |
----------------------------- | |
| | | |
| You will be given | | |
| | | |
| THREE | | |
| | | |
| questions about | | |
| | | |
| HTML | | |
| | | |
| that you must answer | | |
| | | |
| to unlock... | | |
| | | |
----------------------------- | |
EOF | |
} | |
function gift_preview { | |
echo " ___ ___ ___ ___ "; | |
echo " ___ /__/\ / /\ / /\ ___ / /\ ___ "; | |
echo " / /\ \ \:\ / /:/_ / /:/_ / /\ / /:/_ / /\ "; | |
echo " / /:/ \__\:\ / /:/ /\ / /:/ /\ / /:/ / /:/ /\ / /:/ "; | |
echo " / /:/ ___ / /::\ / /:/ /:/_ / /:/_/::\ /__/::\ / /:/ /:/ / /:/ "; | |
echo " / /::\ /__/\ /:/\:\ /__/:/ /:/ /\ /__/:/__\/\:\ \__\/\:\__ /__/:/ /:/ / /::\ "; | |
echo " /__/:/\:\ \ \:\/:/__\/ \ \:\/:/ /:/ \ \:\ /~~/:/ \ \:\/\ \ \:\/:/ /__/:/\:\ "; | |
echo " \__\/ \:\ \ \::/ \ \::/ /:/ \ \:\ /:/ \__\::/ \ \::/ \__\/ \:\ "; | |
echo " \ \:\ \ \:\ \ \:\/:/ \ \:\/:/ /__/:/ \ \:\ \ \:\\"; | |
echo " \__\/ \ \:\ \ \::/ \ \::/ \__\/ \ \:\ \__\/"; | |
echo " \__\/ \__\/ \__\/ \__\/ "; | |
} | |
function run_q1 { | |
local msg="${1-}" | |
clearscreen | |
echo "$(q1)" | |
if [ -n "$msg" ]; then | |
echo "$msg" | |
fi | |
read -p "> " answer | |
if [ "$answer" = "Hypertext Markup Language" ] || [ "$answer" = "hypertext markup language" ]; then | |
echo "" | |
q1_success | |
else | |
run_q1 "(Please try again)" | |
fi | |
} | |
function q1 { | |
cat <<EOF | |
----------------------------------------- | |
| | | |
| Q1: What is HTML an acronym for? | | |
| | | |
| (hint: google "mdn HTML") | | |
| | | |
----------------------------------------- | |
EOF | |
} | |
function q1_success { | |
cat <<EOF | |
------------------ | |
| | | |
| Great Job! | | |
| | | |
------------------ | |
EOF | |
read -p "(Press return to continue)" _ | |
} | |
function run_q2 { | |
local msg="${1-}" | |
clearscreen | |
echo "$(q2)" | |
if [ -n "$msg" ]; then | |
echo "$msg" | |
fi | |
read -p "> " answer | |
if [ "$answer" = "<p>Hello, World!</p>" ]; then | |
echo "" | |
q2_success | |
else | |
run_q2 "(Please try again)" | |
fi | |
} | |
function q2 { | |
cat <<EOF | |
---------------------------------------------- | |
| | | |
| Q2: How do you write an HTML paragraph | | |
| with the content, "Hello, World!" | | |
| | | |
| (hint: google "mdn paragraph tag") | | |
| | | |
---------------------------------------------- | |
EOF | |
} | |
function q2_success { | |
cat <<EOF | |
---------------------- | |
| | | |
| Wow! You rock! | | |
| | | |
---------------------- | |
EOF | |
read -p "(Press return to continue)" _ | |
} | |
function run_q3 { | |
local msg="${1-}" | |
clearscreen | |
echo "$(q3)" | |
if [ -n "$msg" ]; then | |
echo "$msg" | |
fi | |
read -p "> " answer | |
if [ "$answer" = "CSS" ] || [ "$answer" = "css" ]; then | |
echo "" | |
q3_success | |
else | |
run_q3 "(Please try again)" | |
fi | |
} | |
function q3 { | |
cat <<EOF | |
------------------------------------------- | |
| | | |
| Q3: What is the acronym for what | | |
| gives websites styles? (color, | | |
| position, etc.) | | |
| | | |
| (hint: google "mdn cascading style") | | |
| | | |
------------------------------------------- | |
EOF | |
} | |
function q3_success { | |
cat <<EOF | |
------------------------ | |
| | | |
| Amazing! I'm so | | |
| | | |
| proud of you! | | |
| | | |
------------------------ | |
EOF | |
read -p "(Press return to continue)" _ | |
} | |
function gift { | |
cat <<EOF | |
---------------------------------------------------- | |
| | | |
| You have earned a subscription to egghead.io | | |
| | | |
| (when you are ready), or you can take half | | |
| | | |
| its value in cash right now. | | |
| | | |
| | | |
| | | |
| The choice is yours. | | |
| | | |
| | | |
| | | |
| Love, | | |
| | | |
| Robert & Emily | | |
| | | |
---------------------------------------------------- | |
EOF | |
} | |
function start { | |
clearscreen | |
echo "$(welcome)" | |
read -p "(Press return to continue)" _ | |
clearscreen | |
echo "$(overview)" | |
read -p "(Press return to continue)" _ | |
echo "$(gift_preview)" | |
read -p "(Press return to be tested)" _ | |
run_q1 | |
run_q2 | |
run_q3 | |
clearscreen | |
echo "$(gift)" | |
read -p "(Press return to open egghead.io)" _ | |
open https://egghead.io | |
} | |
start |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment