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
+14
View File
@@ -2333,6 +2333,9 @@ segfault when run or not compile at all (gcc and clang respectively).
Cody also provided alternate code that supports the southern hemisphere.
Cody also provided the [try.sh](2000/natori/try.sh) script that shows the Moon
phase in artistic ways.
Later on Cody restored the `#include`s in the source code which had been changed
by us to make it a one-liner again but this was an error as it was not a
one-liner but rather a small program. At the same point Cody made the code
@@ -3190,6 +3193,17 @@ Cody fixed it so that if the file cannot be opened it exits rather than trying
to read from the file.
## [2006/sykes1](2006/sykes1/sykes1.c) ([README.md](2006/sykes1/README.md]))
Cody provided the [alt code](2006/sykes1/README.md#alternate-code) based on the
author's remarks and the [try.sh](2006/sykes1/try.sh) script.
Cody also provided the [bedlam-cubes.pdf](2006/sykes1/bedlam-cubes.pdf) file,
obtained from the Internet Wayback Machine, as the file was no longer available.
The video was also no longer available but Cody found an alternative and added
it to the repo as well.
## [2006/toledo2](2006/toledo2/toledo2.c) ([README.md](2006/toledo2/README.md]))
Cody fixed a segfault in this program which was making it fail to work under