summaryrefslogtreecommitdiff
path: root/reference/C/CONTRIB/SNIP/spin.c
diff options
context:
space:
mode:
Diffstat (limited to 'reference/C/CONTRIB/SNIP/spin.c')
-rwxr-xr-xreference/C/CONTRIB/SNIP/spin.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/reference/C/CONTRIB/SNIP/spin.c b/reference/C/CONTRIB/SNIP/spin.c
new file mode 100755
index 0000000..785bdbf
--- /dev/null
+++ b/reference/C/CONTRIB/SNIP/spin.c
@@ -0,0 +1,29 @@
+/*
+** Miscellaneous text spinners demonstration
+**
+** public domain by Jon Guthrie, Bob Stout, and others
+*/
+
+#include <stdio.h>
+
+#define DURATION 500 /* Length of demo */
+#define SSLOWDOWN 5 /* Make spinner look ok */
+#define TSLOWDOWN 10 /* Make target look ok */
+
+main()
+{
+ unsigned i;
+ char spinner[] = "|/-\\", target[] = ".oO";
+
+ for (i = 0; i < DURATION; ++i)
+ {
+ unsigned scount = i / SSLOWDOWN, tcount = i / TSLOWDOWN;
+ unsigned scountdown = DURATION / SSLOWDOWN;
+ unsigned tcountdown = DURATION / TSLOWDOWN;
+
+ printf("CW %c ... CCW %c ... Explode %c ... Implode%c\r",
+ spinner[scount & 3], spinner[(scountdown - scount) & 3],
+ target[tcount % 3], target[(tcountdown - tcount) % 3]);
+ }
+ return 0;
+}