From 6b74e04bf4c7971d127484ae86fb68dc8836ee3b Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Wed, 13 Dec 2023 09:20:13 -0800 Subject: [PATCH] Add 2018/endoh1/try.sh + format/typo checks The try.sh script shows each input file first so that one can see how it turns out as a GIF file. The input files include those not suggested by the judges including the source code itself (the author suggested it has a message too). The README.md file has been format/typo checked. --- 2018/endoh1/README.md | 14 +++++++----- 2018/endoh1/try.sh | 52 +++++++++++++++++++++++++++++++++++++++++++ thanks-for-help.md | 10 +++++++++ 3 files changed, 70 insertions(+), 6 deletions(-) create mode 100755 2018/endoh1/try.sh diff --git a/2018/endoh1/README.md b/2018/endoh1/README.md index 501792fe4..cfb5d05a2 100644 --- a/2018/endoh1/README.md +++ b/2018/endoh1/README.md @@ -14,16 +14,17 @@ make ### Try: +To see the input files and feed them to the program, redirecting to GIF files: + ```sh -./prog < golem.txt > golem.gif -./prog < smily.txt > smily.gif +./try.sh ``` ## Judges' remarks: -To get the best experience, use a GIF viewer that can handle animated gifs. -On OS X you can use Safari using "open -a Safari smily.gif" +To get the best experience, use a GIF viewer that can handle animated GIFs. +With macOS you can use Safari using `open -a Safari smily.gif`. Some things to consider are that this 2.5KiB gem encodes a 96 character 8x8 font (naively this could already take 6144 bytes) and a GIF encoder. But @@ -44,8 +45,9 @@ cc -o prog prog.c ./prog < invisible.txt > invisible.gif ``` -Open invisible.gif and then wait a minute. You will see a hidden message. -Can you tell the difference between letters that leaves the mark and ones that does not? +Open `invisible.gif` with a GIF viewer that can show animated GIFs and then wait +a minute. You will see a hidden message. Can you tell the difference between +letters that leave the mark and ones that do not? Other examples: diff --git a/2018/endoh1/try.sh b/2018/endoh1/try.sh new file mode 100755 index 000000000..6e6a8839f --- /dev/null +++ b/2018/endoh1/try.sh @@ -0,0 +1,52 @@ +#!/usr/bin/env bash +# +# try.sh - demonstrate IOCCC winner 2018/endoh1 +# + +# 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" all >/dev/null || exit 1 + +# clear screen after compilation so that only the entry is shown +clear + +read -r -n 1 -p "Press any key to show prog.c (space = next page, q = quit): " +echo 1>&2 +less -EXF prog.c +echo "$ ./prog < prog.c > prog.gif" 1>&2 +./prog < prog.c > prog.gif +echo 1>&2 + +read -r -n 1 -p "Press any key to show golem.txt (space = next page, q = quit): " +echo 1>&2 +less -EXF golem.txt +echo "$ ./prog < golem.txt > golem.gif" 1>&2 +./prog < golem.txt > golem.gif +echo 1>&2 + +read -r -n 1 -p "Press any key to show smily.txt (space = next page, q = quit): " +echo 1>&2 +less -EXF smily.txt +echo "$ ./prog < smily.txt > smily.gif" 1>&2 +./prog < smily.txt > smily.gif +echo 1>&2 + +read -r -n 1 -p "Press any key to show invisible.txt (space = next page, q = quit): " +less -EXF invisible.txt +echo "$ ./prog < invisible.txt > invisible.gif" 1>&2 +./prog < invisible.txt > invisible.gif +echo 1>&2 + +echo "Now open the GIF files prog.gif, golem.gif, smily.gif and invisible.gif" 1>&2 +echo "in a GIF viewer that can display animation in animated GIFs." 1>&2 +echo 1>&2 +echo "If you use macOS you can open them all in Safari, one tab per image, like: " 1>&2 +echo 1>&2 +echo " open -a Safari prog.gif golem.gif smily.gif invisible.gif" 1>&2 +echo 1>&2 +echo "Once they're open make sure to watch as they change form." 1>&2 diff --git a/thanks-for-help.md b/thanks-for-help.md index 22a563a6a..b1207f514 100644 --- a/thanks-for-help.md +++ b/thanks-for-help.md @@ -3968,6 +3968,16 @@ work for Windows, based on the author's remarks. Internet Wayback Machine. +## [2018/endoh1](/2018/endoh1/prog.c) ([README.md](/2018/endoh1/README.md)) + +[Cody](#cody) added the [try.sh](/2018/endoh1/try.sh) script which shows the +input files one at a time and after each one is shown, it feeds it to the +program, redirecting the output to the respective GIF file. It then will inform +the user they should open it in a GIF viewer that can show animation in animated +GIF files. It offers an example command for macOS like the judges did in their +remarks. The input files offered includes the prog.c as the author, +[Yusuke](#yusuke), suggested that it too has a secret. + ## [2018/endoh2](/2018/endoh2/prog.c) ([README.md](/2018/endoh2/README.md))