Add 2000/natori/try.sh

This script will show the current phase of White Face ('Moon' :-) ) in
artistic ways. Rather than write the different ways here I would suggest
one just try it out.
This commit is contained in:
Cody Boone Ferguson committed 2023-11-23 01:49:40 -08:00
1 parent 1383522dac
commit 8dffa154bc
3 files changed
+156 -2

No files matched your search

+7 -2
View File
@@ -18,8 +18,13 @@ version](#alternate-code) below.
### Try:
Try modifying the code so that it will show another Moon phase based on input
or else just by the code itself. Bonus points if you can make it show all!
```sh
./try.sh
```
Also try modifying the code so that it will show another Moon phase based on
input or else just by the code itself. Bonus points if you can make it show all~
## Alternate code:
+135
View File
@@ -0,0 +1,135 @@
#!/usr/bin/env bash
#
# try.sh - demonstrate IOCCC winner 2000/natori
#
# make sure CC is set so that when we do make CC="$CC" it isn't empty. Doing it
# this way allows us to have the user specify a different compiler in an easy
# way.
if [[ -z "$CC" ]]; then
CC="cc"
fi
make CC="$CC" everything >/dev/null || exit 1
# clear screen after compilation so that only the entry is shown
clear
NATORI="natori"
moon()
{
read -r -n 1 -p "Press any key to randomly show the northern/southern hemisphere Moon: "
for ((i=0;i<=10;i++)); do
RAND=$((RANDOM % 1000))
if [[ "$RAND" -le 500 ]]; then
./"$NATORI"
else
./"$NATORI".alt
fi
done
echo 1>&2
RAND=$((RANDOM % 1000))
if [[ "$RAND" -gt 500 ]]; then
read -r -n 1 -p "Press any key to alternate between the northern/southern hemisphere Moon: "
./"$NATORI"
./"$NATORI".alt
./"$NATORI"
./"$NATORI".alt
./"$NATORI"
./"$NATORI".alt
else
read -r -n 1 -p "Press any key to alternate between the southern/northern hemisphere Moon: "
./"$NATORI".alt
./"$NATORI"
./"$NATORI".alt
./"$NATORI"
./"$NATORI".alt
./"$NATORI"
fi
echo 1>&2
echo "We will now reverse the order." 1>&2
echo 1>&2
if [[ "$RAND" -le 499 ]]; then
read -r -n 1 -p "Press any key to alternate between the northern/southern hemisphere Moon: "
./"$NATORI"
./"$NATORI".alt
./"$NATORI"
./"$NATORI".alt
./"$NATORI"
./"$NATORI".alt
else
read -r -n 1 -p "Press any key to alternate between the southern/northern hemisphere Moon: "
./"$NATORI".alt
./"$NATORI"
./"$NATORI".alt
./"$NATORI"
./"$NATORI".alt
./"$NATORI"
fi
echo 1>&2
echo "Will now use less(1): 'q' = quit, space = next page, enter = next line." 1>&2
echo "We recommend that you try holding space down." 1>&2
echo 1>&2
RAND=$((RANDOM % 1000))
if [[ "$RAND" -gt 500 ]]; then
read -r -n 1 -p "Press any key to alternate between the northern/southern hemisphere Moon: "
( ./"$NATORI"; ./"$NATORI.alt" ; ./"$NATORI" ; ./"$NATORI.alt"; \
./"$NATORI"; ./"$NATORI.alt" ) | less
else
read -r -n 1 -p "Press any key to alternate between the southern/northern hemisphere Moon: "
( ./"$NATORI.alt"; ./"$NATORI" ; ./"$NATORI.alt" ; ./"$NATORI"; \
./"$NATORI.alt"; ./"$NATORI" ) | less
fi
echo 1>&2
echo "Will now use less(1): 'q' = quit, space = next page, enter = next line." 1>&2
echo "We now recommend that you try holding enter down." 1>&2
echo 1>&2
if [[ "$RAND" -gt 500 ]]; then
read -r -n 1 -p "Press any key to alternate between the northern/southern hemisphere Moon: "
( ./"$NATORI"; ./"$NATORI.alt" ; ./"$NATORI" ; ./"$NATORI.alt"; \
./"$NATORI"; ./"$NATORI.alt" ) | less
else
read -r -n 1 -p "Press any key to alternate between the southern/northern hemisphere Moon: "
( ./"$NATORI.alt"; ./"$NATORI" ; ./"$NATORI.alt" ; ./"$NATORI"; \
./"$NATORI.alt"; ./"$NATORI" ) | less
fi
echo 1>&2
echo "We will now reverse the order." 1>&2
echo 1>&2
echo "Will now use less(1): 'q' = quit, space = next page, enter = next line." 1>&2
echo "We recommend that you try holding space down." 1>&2
echo 1>&2
if [[ "$RAND" -le 499 ]]; then
read -r -n 1 -p "Press any key to alternate between the northern/southern hemisphere Moon: "
( ./"$NATORI"; ./"$NATORI.alt" ; ./"$NATORI" ; ./"$NATORI.alt"; \
./"$NATORI"; ./"$NATORI.alt" ) | less
else
read -r -n 1 -p "Press any key to alternate between the southern/northern hemisphere Moon: "
( ./"$NATORI.alt"; ./"$NATORI" ; ./"$NATORI.alt" ; ./"$NATORI"; \
./"$NATORI.alt"; ./"$NATORI" ) | less
fi
echo 1>&2
echo "Will now use less(1): 'q' = quit, space = next page, enter = next line." 1>&2
echo "We now recommend that you try holding enter down." 1>&2
echo 1>&2
if [[ "$RAND" -le 499 ]]; then
read -r -n 1 -p "Press any key to alternate between the northern/southern hemisphere Moon: "
( ./"$NATORI"; ./"$NATORI.alt" ; ./"$NATORI" ; ./"$NATORI.alt"; \
./"$NATORI"; ./"$NATORI.alt" ) | less
else
read -r -n 1 -p "Press any key to alternate between the southern/northern hemisphere Moon: "
( ./"$NATORI.alt"; ./"$NATORI" ; ./"$NATORI.alt" ; ./"$NATORI"; \
./"$NATORI.alt"; ./"$NATORI" ) | less
fi
echo 1>&2
}
# show the Moon phase in artistic ways!
moon