Annotation of 42BSD/games/mille/roll.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  *     This routine rolls ndie nside-sided dice.
                      3:  *
                      4:  * @(#)roll.c  1.1 (Berkeley) 4/1/82
                      5:  *
                      6:  */
                      7: 
                      8: # define       reg     register
                      9: 
                     10: # ifndef vax
                     11: # define       MAXRAND 32767L
                     12: 
                     13: roll(ndie, nsides)
                     14: int    ndie, nsides; {
                     15: 
                     16:        reg long        tot;
                     17:        reg unsigned    n, r;
                     18: 
                     19:        tot = 0;
                     20:        n = ndie;
                     21:        while (n--)
                     22:                tot += rand();
                     23:        return (int) ((tot * (long) nsides) / ((long) MAXRAND + 1)) + ndie;
                     24: }
                     25: 
                     26: # else
                     27: 
                     28: roll(ndie, nsides)
                     29: reg int        ndie, nsides; {
                     30: 
                     31:        reg int         tot, r;
                     32:        reg double      num_sides;
                     33: 
                     34:        num_sides = nsides;
                     35:        tot = 0;
                     36:        while (ndie--)
                     37:                tot += (r = rand()) * (num_sides / 017777777777) + 1;
                     38:        return tot;
                     39: }
                     40: # endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.