cleanup, add manual page
[unix-history] / usr / src / games / monop / roll.c
CommitLineData
dd3d6f67 1/*
d99e6414 2 * Copyright (c) 1980 Regents of the University of California.
e10e1c15
KB
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms are permitted
d99e6414
KB
6 * provided that the above copyright notice and this paragraph are
7 * duplicated in all such forms and that any documentation,
8 * advertising materials, and other materials related to such
9 * distribution and use acknowledge that the software was developed
10 * by the University of California, Berkeley. The name of the
11 * University may not be used to endorse or promote products derived
12 * from this software without specific prior written permission.
13 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
14 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
15 * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
dd3d6f67
KB
16 */
17
18#ifndef lint
d99e6414 19static char sccsid[] = "@(#)roll.c 5.4 (Berkeley) %G%";
e10e1c15 20#endif /* not lint */
dd3d6f67
KB
21
22/*
23 * This routine rolls ndie nside-sided dice.
24 */
25
26# define reg register
27
574481b9 28# if !defined(vax) && !defined(tahoe)
dd3d6f67
KB
29# define MAXRAND 32767L
30
31roll(ndie, nsides)
32int ndie, nsides; {
33
34 reg long tot;
35 reg unsigned n, r;
36
37 tot = 0;
38 n = ndie;
39 while (n--)
40 tot += rand();
41 return (int) ((tot * (long) nsides) / ((long) MAXRAND + 1)) + ndie;
42}
43
44# else
45
46roll(ndie, nsides)
47reg int ndie, nsides; {
48
49 reg int tot, r;
50 reg double num_sides;
51
52 num_sides = nsides;
53 tot = 0;
54 while (ndie--)
55 tot += (r = rand()) * (num_sides / 017777777777) + 1;
56 return tot;
57}
58# endif