From ed47e4ab55b80468dad9f95fb35937638cb1e85a Mon Sep 17 00:00:00 2001 From: Cody Boone Ferguson <53008573+xexyl@users.noreply.github.com> Date: Fri, 19 Jan 2024 06:42:33 -0800 Subject: [PATCH] Add 1998/chaos/try.sh The script runs the program on each data file, explaining how to use the program, things to try and how to quit the program and how to terminate the script prematurely. --- 1998/chaos/README.md | 15 +++++++++++++++ 1998/chaos/try.sh | 35 +++++++++++++++++++++++++++++++++++ thanks-for-help.md | 4 ++++ 3 files changed, 54 insertions(+) create mode 100755 1998/chaos/try.sh diff --git a/1998/chaos/README.md b/1998/chaos/README.md index d4f1f1521..da54ee82c 100644 --- a/1998/chaos/README.md +++ b/1998/chaos/README.md @@ -21,6 +21,21 @@ make chaos_nohalf ``` +## Try: + + +```sh +./try.sh +``` + +This script will run the program on each data file. To quit the program hit `q`. +If not all files have been used it will go to the next one; otherwise the script +will be finished. To end the script early send intr/ctrl-c. + +The script will give you instructions on how to use the program and things to +try each time it is run, as a helpful reminder. + + ## Judge's Comments: This is the author's first IOCCC entry. We thought the entry was diff --git a/1998/chaos/try.sh b/1998/chaos/try.sh new file mode 100755 index 000000000..2c0f0de04 --- /dev/null +++ b/1998/chaos/try.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash +# +# try.sh - demonstrate IOCCC winner 1998/chaos +# + +# 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 + +show_instructions() +{ + echo 1>&2 + echo "Try the keys 'y', 'u', 'i', 'h', 'j' and 'k'; 'a' and 'z' zoom in and out." 1>&2 + echo "When tired of moving it manually wait a short bit and watch what happens. You" 1>&2 + echo "might try zooming in and out and then wait for it to start moving (again or" 1>&2 + echo "initially). You can interrupt the automatic movement by pressing any key or 'q' to" 1>&2 + echo "quit. Send intr/ctrl-c to quit the script prematurely." 1>&2 + echo 1>&2 +} + +for f in cube.data desk.data ioccc.data pyramid.data xwing.data; do + clear + show_instructions + read -r -n 1 -p "Press any key to run: ./chaos $f: " + echo 1>&2 + ./chaos "$f" +done diff --git a/thanks-for-help.md b/thanks-for-help.md index 85c7ee169..8c78fd3c9 100644 --- a/thanks-for-help.md +++ b/thanks-for-help.md @@ -2259,6 +2259,10 @@ as well as allowing one to pass in different file names or strings. [Cody](#cody) added a call to `endwin()` to restore terminal sanity (echo etc.) when exiting the program (in both versions). +Cody also added the [try.sh](/1998/chaos/try.sh) script that runs the program on +all the data files, giving instructions on how to rotate and zoom in and out, +prior to each run. + ## [1998/df](/1998/df/df.c) ([README.md](/1998/df/README.md]))