New OOTS products from CafePress
New OOTS t-shirts, ornaments, mugs, bags, and more
Results 1 to 3 of 3
  1. - Top - End - #1
    Ogre in the Playground
     
    Reinboom's Avatar

    Join Date
    Mar 2007
    Location
    Santa Monica, CA, US
    Gender
    Female

    Default 'Organic' yet Equal Stat Generation

    Another stat generation idea that came up.
    Start with a base number in a stat, such as 6. Every stat has at least this.
    Roll a pool of d6s, such as 36d6.
    For each 1, add one to the 1st number.
    For each 2, add one to the 2nd number.
    etc.

    Reroll all dice that would increase a stat above 18.

    This guarantees that all players have an equal number of 'total stats', yet, they are decidedly random.

    To further this, an idea provided by Kyace:
    Once you are finished rolling your selection, you get 10 stat points you can distribute based on the rules outlined in the DMG.
    This shows both a random development, background, etc. Yet still allows a character to build in "focused training", and customize a bit.

    Of course, this idea suffers the problem of it takes too freaking long to roll.

    So, I also offer you this:
    Stat Placer
    Avatar by Alarra

  2. - Top - End - #2
    Banned
     
    Lord Iames Osari's Avatar

    Join Date
    May 2006
    Location
    Up in the sky
    Gender
    Male

    Default Re: 'Organic' yet Equal Stat Generation

    Oooo, cool.

  3. - Top - End - #3
    Bugbear in the Playground
     
    RS14's Avatar

    Join Date
    Nov 2006
    Location
    GMT-8

    Default Re: 'Organic' yet Equal Stat Generation

    I've used a similar system, but using the point-buy values so that a high score reduces others at more than a one to one rate. Because the scores are un-optimized under these systems, I think it's probably better to use slightly larger Point-buy values than are normal. Also don't forget to re-roll if no scores are above 13, as this is a possibility. I've spoilered the Java code for it, if anyone cares.


    Spoiler
    Show
    //Stat Generator
    public class statRoller{
    static int targetValue=-31;
    static int currentValue=0;
    public static void main(String[] args){
    int[] ability=new int[6];
    while(!(targetValue>=-30&&targetValue<=96)){
    System.out.println("Please give a target value (from -30 to 96) to balance the ability arrays against.");
    targetValue=TextIO.getInt();
    }
    System.out.println("__");
    for(int i=0;i<6;i++){
    ability[i]=fourDSixDropLowest();
    }
    do{
    currentValue=0;
    for(int i=0;i<6;i++){
    currentValue=currentValue+getPrice(ability[i]);
    }
    int a=-1;
    if(currentValue==targetValue){
    a=0;
    }
    else if(currentValue<targetValue){
    a=1;
    }
    int b=(int)(Math.random()*6);
    if(ability[b]>3&&ability[b]<18){
    ability[b]=ability[b]+a;
    }
    }
    while(currentValue!=targetValue);
    for(int i=0;i<6;i++){
    System.out.println(ability[i]);
    }

    }

    static int getPrice(int score){
    switch(score){
    case 3:
    return -5;
    case 4:
    return -4;
    case 5:
    return -3;
    case 6:
    return -2;
    case 7:
    return -1;
    case 8:
    return 0;
    case 9:
    return 1;
    case 10:
    return 2;
    case 11:
    return 3;
    case 12:
    return 4;
    case 13:
    return 5;
    case 14:
    return 6;
    case 15:
    return 8;
    case 16:
    return 10;
    case 17:
    return 13;
    case 18:
    return 16;
    default:
    }
    return 0;
    }

    static int fourDSixDropLowest(){
    int[] dice=new int[4];
    for(int j=0;j<4;j++){
    dice[j]=(int)(Math.random()*6) + 1;
    }
    int lowest=7;
    for(int j=0;j<4;j++){
    if(dice[j]<lowest){
    lowest=dice[j];
    }
    }
    return dice[0]+dice[1]+dice[2]+dice[3]-lowest;
    }
    }


    This uses the TextIO class from Introduction to Programming Using Java because I've never bothered to learn the language well enough to use the built in IO.
    http://math.hws.edu/javanotes/source/TextIO.java

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •