]> git.cameronkatri.com Git - bsdgames-darwin.git/blobdiff - monop/roll.c
Add (unsigned char) cast to ctype functions
[bsdgames-darwin.git] / monop / roll.c
index 002cf7888e661cd6581b7c97f40e2503695259a1..07395fa954c4b4c712df97e5d43fc5a1115b727f 100644 (file)
@@ -1,6 +1,8 @@
+/*     $NetBSD: roll.c,v 1.9 2003/08/07 09:37:29 agc Exp $     */
+
 /*
- * Copyright (c) 1980 Regents of the University of California.
- * All rights reserved.
+ * Copyright (c) 1980, 1993
+ *     The Regents of the University of California.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in the
  *    documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- *    must display the following acknowledgement:
- *     This product includes software developed by the University of
- *     California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
+ * 3. Neither the name of the University nor the names of its contributors
  *    may be used to endorse or promote products derived from this software
  *    without specific prior written permission.
  *
  * SUCH DAMAGE.
  */
 
+#include <sys/cdefs.h>
 #ifndef lint
-static char sccsid[] = "@(#)roll.c     5.5 (Berkeley) 6/1/90";
+#if 0
+static char sccsid[] = "@(#)roll.c     8.1 (Berkeley) 5/31/93";
+#else
+__RCSID("$NetBSD: roll.c,v 1.9 2003/08/07 09:37:29 agc Exp $");
+#endif
 #endif /* not lint */
 
+#include "monop.ext"
+#include <stdlib.h>
+
 /*
  *     This routine rolls ndie nside-sided dice.
  */
 
-#include <stdlib.h>
-
-#define        reg     register
+#if defined(pdp11)
+#define        MAXRAND 32767L
 
+int
 roll(ndie, nsides)
-reg int        ndie, nsides; {
+       int ndie, nsides;
+{
+       long tot;
+       unsigned n, r;
 
-       reg int         tot, r;
-       reg double      num_sides;
+       tot = 0;
+       n = ndie;
+       while (n--)
+               tot += rand();
+       return (int) ((tot * (long) nsides) / ((long) MAXRAND + 1)) + ndie;
+}
+
+#else
+
+int
+roll(ndie, nsides)
+       int ndie, nsides;
+{
+       int tot, r;
+       double num_sides;
 
        num_sides = nsides;
        tot = 0;
@@ -55,3 +77,4 @@ reg int       ndie, nsides; {
                tot += (r = rand()) * (num_sides / RAND_MAX) + 1;
        return tot;
 }
+#endif