BSD 4_1_snap development
[unix-history] / usr / src / games / monop / roll.c
CommitLineData
2bb3c5cd
C
1/*
2 * This routine rolls ndie nside-sided dice.
3 */
4
5# define reg register
6
7# ifndef vax
8# define MAXRAND 32767L
9
10roll(ndie, nsides)
11int ndie, nsides; {
12
13 reg long tot;
14 reg unsigned n, r;
15
16 tot = 0;
17 n = ndie;
18 while (n--)
19 tot += rand();
20 return (int) ((tot * (long) nsides) / ((long) MAXRAND + 1)) + ndie;
21}
22
23# else
24
25roll(ndie, nsides)
26reg int ndie, nsides; {
27
28 reg int tot, r;
29 reg double num_sides;
30
31 num_sides = nsides;
32 tot = 0;
33 while (ndie--)
34 tot += (r = rand()) * (num_sides / 017777777777) + 1;
35 return tot;
36}
37# endif