troll.c - rpgtools - various tools for role-playing games
 (HTM) git clone git://src.adamsgaard.dk/rpgtools
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
       troll.c (782B)
       ---
            1 #include <stdio.h>
            2 #include <stdlib.h>
            3 #include <err.h>
            4 #include <math.h>
            5 
            6 char *argv0;
            7 
            8 void
            9 usage(void)
           10 {
           11         errx(1, "usage: %s DICE\nwhere DICE is N dice with M sides, in format NdM", argv0);
           12 }
           13 
           14 int
           15 random_number(int min, int max)
           16 {
           17         return min + round((double)rand() / RAND_MAX * (double)(max - min));
           18 }
           19 
           20 int
           21 main(int argc, char *argv[])
           22 {
           23         int i, n, sides, roll, sum = 0;
           24 
           25         argv0 = *argv;
           26         if (argc != 2)
           27                 usage();
           28 
           29         sscanf(argv[1], "%dd%d", &n, &sides);
           30 
           31         if (n < 1)
           32                 errx(1, "number of dice must be a positive value (%d)", n);
           33 
           34         if (sides < 2)
           35                 errx(1, "dice must be at least two sided (%d)", sides);
           36 
           37         for (i = 0; i < n; i++) {
           38                 roll = random_number(1, sides);
           39                 printf("1d%d\t%d\n", sides, roll);
           40                 sum += roll;
           41         }
           42 
           43         if (n > 1)
           44                 printf("SUM:\t%d\n", sum);
           45 
           46         return 0;
           47 }