Re: [CODE] [Newbie] Stat rolling for new characters

From: Ray (ruppertr@SNYCORVA.CORTLAND.EDU)
Date: 07/02/98


On Thu, 2 Jul 1998, John Woods wrote:

> I was using a relatively simple system...first rolled each stat between 50 and
> 100. Then I was adding them up. As long as they were not all adding up to 825,
> the game was supposed to roll a number between 1 and 11, and reroll the
[snip]
>
> So finally I ask my question: does anyone have a snippet for allocating so
> many stat points /unevenly/ between 11 different stats, so that they add up to
> whatever amount you specify?

#define MAX_SUM 825

int scores[11];  //

for (int i=0;i<11;i++)
 {
  scores[i]=50;  // min score of fifty for all
 }

int pts_remaining = MAX_SUM - 550;

while (pts_remaining-- > 0) scores[number(0,10)]++;

// assign scores[] to ch->abilities...


That's a general idea.  Not exactly speedy, but not too bad either.  You
can speed it up by doing a bit more sophisticated job of distributing the
points (by more than 1 in other words) but it'll work.

I'm away from my code, and I haven't coded in C for about four months, so
I'm a bit rusty. :)  You should get the general idea, though.

Good Luck,
        Ray


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
     +------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/15/00 PST