From 8944ad075c6b12bbda1273ec31efade801892c19 Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Thu, 19 Sep 2024 19:00:58 -0400 Subject: argparse --- balls.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/balls.c b/balls.c index ccc3e8e..c2ce030 100644 --- a/balls.c +++ b/balls.c @@ -17,7 +17,8 @@ enum { KEY_QUIT = 'q' , - NBALLS = 3, + DEFAULT_NBALLS = 3, + VMAX = 5, G = 1, MASS = 1, @@ -66,12 +67,22 @@ void frametick(void *arg); void threadmain(int argc, char *argv[]) { + int nballs; Image *bg, *walls; Mousectl *mctl; Keyboardctl *kctl; int resize[2]; Rune key; + nballs = DEFAULT_NBALLS; + if (argc > 1) { + if (sscanf(argv[1], "%d", &nballs) != 1 || nballs < 1) { + printf("usage: balls [number of balls]\n"); + threadexitsall(0); + } + } + printf("nballs: %ud\n", nballs); + if (init(argv[0], &mctl, &kctl)) sysfatal("%s: %r", argv[0]); @@ -87,7 +98,7 @@ threadmain(int argc, char *argv[]) { drawbg(walls, bg); - spawnballs(NBALLS); + spawnballs(nballs); enum { RESIZE = 0, KEYBD = 1 }; Alt alts[3] = { -- cgit v1.2.3