diff --git a/2012/endoh1/Makefile b/2012/endoh1/Makefile index 0d236530b..3228aeaa6 100644 --- a/2012/endoh1/Makefile +++ b/2012/endoh1/Makefile @@ -57,7 +57,7 @@ ARCH= # Defines that are needed to compile # -CDEFINE= -DG="$G" -DP="$P" -DV="$V" -DS=12321 -DA=10 +CDEFINE= -DG="${GRAVITY}" -DP="${PRESSURE}" -DV="${VISCOSITY}" # Include files that are needed to compile # @@ -120,15 +120,15 @@ ALT_TARGET= ${PROG}.alt ${PROG}_color.alt # The factor of gravity # -G=1 +GRAVITY=1 # The factor of pressure # -P=4 +PRESSURE=4 # The factor of viscosity # -V=8 +VISCOSITY=8 ################# @@ -154,13 +154,18 @@ ${PROG}_color: ${PROG}_color.c alt: data ${ALT_TARGET} @${TRUE} +# Variables that control the alarm(3) timer and how much to sleep for alt code +# +TIMER= 10 +SLEEP= 12321 + ${PROG}.alt: ${PROG}.alt.c - ${CC} ${CFLAGS} $< -o $@ ${LDFLAGS} + ${CC} ${CFLAGS} -DS=${SLEEP} -DA=${TIMER} $< -o $@ ${LDFLAGS} # this does NOT correspond to endoh1.alt2.c but rather endoh1.alt.c: it is NOT # deobfuscated. ${PROG}_color.alt: ${PROG}_color.alt.c - ${CC} ${CFLAGS} $< -o $@ ${LDFLAGS} + ${CC} ${CFLAGS} -DS=${SLEEP} -DA=${TIMER} $< -o $@ ${LDFLAGS} alt2: ${PROG}.alt2 @${TRUE} diff --git a/2012/endoh1/README.md b/2012/endoh1/README.md index 2ed6e2c0b..38e4242ad 100644 --- a/2012/endoh1/README.md +++ b/2012/endoh1/README.md @@ -59,7 +59,7 @@ for fun. That is controlled by the variable `A`; 0 disables it. If you wish to change the speed you should do: ```sh -make clobber CDEFINE="-DS=N" alt +make clobber SLEEP=N alt ``` where `N` is number or the letter `I`. @@ -75,7 +75,7 @@ you wish to change the viscosity and pressure factors but leave the other macros alone: ```sh -make clobber CDEFINE="-DV=X -DP=Y" alt +make clobber VISCOSITY=X PRESSURE=Y alt ``` where `X` and `Y` are numbers or the letter `I` and which are, respectively, the @@ -88,7 +88,7 @@ it from being done. If you want to disable the alarm time, set `A` to 0: ```sh -make clobber CDEFINE="-DA=0" alt +make clobber TIMER=0 alt ``` It cannot be < 0 or > 60 (arbitrarily selected). @@ -97,7 +97,7 @@ Try slowing down the display by increasing the sleep time from `12321` to `50000`: ```sh -make clobber CDEFINE="-DS=50000" alt +make clobber SLEEP=50000 alt ``` Now try using both `endoh1.alt` and `endoh1_color.alt` as you would `endoh1` above. @@ -106,7 +106,7 @@ Also try speeding up the display by decreasing the sleep time from `12321` to `9999`: ```sh -make clobber CDEFINE="-DS=9999" alt2 +make clobber SLEEP=9999 alt2 ``` WARNING: again, be careful with too low a value if you're sensitive to flashing @@ -119,13 +119,13 @@ instance: ```sh -make clobber CDEFINE="-DG=5 -DP=5 -DV=5" alt +make clobber GRAVITY=5 PRESSURE=5 VISCOSITY=5 alt ``` You might try even: ```sh -make clobber CDEFINE="-DG=I" alt +make clobber GRAVITY=I alt ``` See the author's remarks for details on these macros. diff --git a/2012/endoh1/try.alt.sh b/2012/endoh1/try.alt.sh index ee7a254ff..56a48d044 100755 --- a/2012/endoh1/try.alt.sh +++ b/2012/endoh1/try.alt.sh @@ -13,11 +13,11 @@ fi # unlike other try.sh/try.alt.sh scripts this one has two compiled binaries: one # which sets the gravity factor to I and the other that does not. -make clobber CC="$CC" CDEFINE="-DA=10 -DG=I -DS=39000" alt >/dev/null || exit 1 +make clobber CC="$CC" TIMER=10 GRAVITY=I SLEEP=39000 alt >/dev/null || exit 1 # we have to move the endoh1_color.alt to endoh1_color.alt3, not alt2, because # we have to use make clobber which would wipe out endoh1_color.alt2. mv endoh1_color.alt endoh1_color.alt3 -make clobber CC="$CC" CDEFINE="-DA=10 -DS=39000" alt >/dev/null || exit 1 +make clobber CC="$CC" TIMER=10 SLEEP=39000 alt >/dev/null || exit 1 read -r -n 1 -p "Press any key run run slower fluid on endoh1_color.alt.c: " mv endoh1_color.alt3 endoh1_color.alt2 # clear screen before continuing diff --git a/thanks-for-help.md b/thanks-for-help.md index 3363a9324..5b6b82177 100644 --- a/thanks-for-help.md +++ b/thanks-for-help.md @@ -3359,13 +3359,16 @@ Cody also added two [alt versions](/2012/endoh1/README.md#alternate-code) that let one control how fast the fluid moves (how long to sleep in between writes) and also the gravity factor, the pressure factor and the viscosity factor as well as an alarm that lets one run it in a loop without having to hit -ctrl-c/intr in between (the alarm can be disabled, however). The two different -versions is because there are two versions: the original and the colour version -added by the author, [Yusuke](#yusuke), at the request of the judges. +ctrl-c/intr in between (the alarm can be disabled, however). The Makefile allows +one to easily do this with variable names rather than redefining `CDEFINE`. -Cody also added the [try.alt.sh](/2012/endoh1/try.alt.sh) script compiles the alt -code in two ways, one with setting the gravity factor to `I` and another with -the default, and which is run on the source file and each of the text files +The two different alt versions is because there are two versions: the original +and the colour version added by the author, [Yusuke](#yusuke), at the request of +the judges. + +Cody also added the [try.alt.sh](/2012/endoh1/try.alt.sh) script that compiles +the alt code in two ways, one with setting the gravity factor to `I` and another +with the default, and which is run on the source file and each of the text files supplied by the author. This code has an alarm set at 10 seconds so that one need not hit ctrl-c/intr in between .. say to make it more fluid :-)