Mercurial > hg > early-roguelike
view rogue4/prob.c @ 164:49af2fd0bb0c
Move some autotools files to where configure can find them.
rogue5 uses config.guess and config.sub to find the canonical system
names. The configure script expects them to be in the same directory
as install-sh. So they have been relocated to the top level.
This is a quick and dirty fix. The eventual plan is to relocate them
to /dev/null.
I also suspect they should be used to set HOST, not TARGET. Rogue is
not a cross-compiler.
author | John "Elwin" Edwards |
---|---|
date | Tue, 16 Jun 2015 11:44:49 -0400 |
parents | 9535a08ddc39 |
children |
line wrap: on
line source
/* * * Rogue: Exploring the Dungeons of Doom * Copyright (C) 1980, 1981, 1982 Michael Toy, Ken Arnold and Glenn Wichman * All rights reserved. * * See the file LICENSE.TXT for full copyright and licensing information. */ # include <curses.h> # include "rogue.h" # undef max # define TRIES 10000 static char *sccsid = "@(#)prob.c 1.3 (Berkeley) 12/17/81"; main(ac, av) int ac; char **av; { register unsigned int prob, prob2, exp; register struct monster *mp; register unsigned int max, min, i; register unsigned int max2, min2; printf("%17.17s ----experience--- ----hit points---\n", ""); printf("%17.17s %7s %4s %4s %7s %4s %4s lvl\n", "monster", "avg", "min", "max", "avg", "min", "max", "max hp"); seed = 0; for (mp = monsters; mp < &monsters[26]; mp++) { i = TRIES; prob2 = prob = 0; min2 = min = 30000; max2 = max = 0; while (i--) { if ((exp = roll(mp->m_stats.s_lvl, 8)) < min2) min2 = exp; if (exp > max2) max2 = exp; prob2 += exp; mp->m_stats.s_maxhp = exp; if ((exp = mp->m_stats.s_exp + exp_add(mp)) < min) min = exp; if (exp > max) max = exp; prob += exp; } printf("%17.17s: %7.2f %4d %4d %7.2f %4d %4d %3d\n", mp->m_name, ((double) prob) / TRIES, min, max, ((double) prob2) / TRIES, min2, max2, mp->m_stats.s_lvl); fflush(stdout); } } exp_add(mp) register struct monster *mp; { register unsigned int mod; if (mp->m_stats.s_lvl == 1) mod = mp->m_stats.s_maxhp / 8; else mod = mp->m_stats.s_maxhp / 6; if (mp->m_stats.s_lvl > 9) mod *= 20; else if (mp->m_stats.s_lvl > 6) mod *= 4; return mod; } /* * roll: * roll a number of dice */ roll(number, sides) register unsigned int number, sides; { register unsigned int dtotal = 0; dtotal = number; while (number--) dtotal += rnd(sides); return dtotal; } /* * rnd: * Pick a very random number. */ rnd(range) register unsigned int range; { return RN % range; }