From 44dbf31927601ae69f343957a1046c4aea26d72d Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sun, 3 Jul 2016 16:37:22 +1200 Subject: Add seed-setting option and handling --- games/rndn | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) (limited to 'games/rndn') diff --git a/games/rndn b/games/rndn index b173dce6..56a19be3 100755 --- a/games/rndn +++ b/games/rndn @@ -2,9 +2,42 @@ # Esoteric random number generator # +self=rndn + +# Define usage function +usage() { + printf 'USAGE: %s [-h | -s SEED]\n' "$self" +} + +# Parse options +while getopts 'hs:' opt ; do + case $opt in + + # -h for help + h) + usage + exit 0 + ;; + + # -s to set seed manually + s) + seed=$OPTARG + ;; + + # Unknown option, print usage and fail + \?) + usage >&2 + exit 2 + ;; + esac +done +shift "$((OPTIND-1))" + +# If no seed given, get one from Bash's $RANDOM +: "${seed:=$RANDOM}" # Apply algorithm -for ((seed = RANDOM ** 2, i = 0; i < ${#seed}; i++)) ; do +for ((i = 0; i < ${#seed}; i++)) ; do ((sum += ${seed:i:1})) done for ((red = seed - sum; ${#red} > 1; red = redn)) ; do -- cgit v1.2.3