#!/usr/bin/python import random import string import getopt import sys def total(s): toReturn =0 for i in s: toReturn += int(string.strip(string.split(i)[0])) return toReturn def cloneArray(a): b = [] for x in a: b.append(x) return b def average(s): toReturn =0 for i in s: toReturn += i return toReturn/len(s) def allAboveTen(s): #print "allAboveTen got ", str(s) for i in s: score = i if ( score < 10): #print "score was below ten : ", score return False return True def suggest(l): x = cloneArray(l) s = [] for i in x: s.append(int(string.strip(string.split(i)[0]))) if ( average(s[0:3]) > average(s[3:6]) and average(s[0:3]) > average([s[1], s[3], s[4]]) ): if ( s[5] > 15 and (average([s[2], s[1], s[3]]) < 13)): return "Paladin" elif ( average([s[2], s[1], s[3]]) > 13 and s[4] > 12 ): return "Ranger" return "Fighter" elif ( average(s[0:3]) > average(s[3:6]) and average(s[0:3]) < average([s[1], s[3], s[4]]) ): return "Rogue" elif ( average(s[0:3]) < average(s[3:6]) ): if ( s[3] > s[5] and s[3] > s[4] ): return "Wizard" elif ( s[3] > s[5] and s[3] < s[4] and average([s[4], s[5], s[0]]) > 12): return "Cleric" elif ( s[3] < s[5]): return "Sorceror" return "Spellcaster" elif ( average(s) < 11): return "Slaad bait" else: return "No suggestion" def signIntStr(i): if ( i <= 9 ) : return " " + str((i-10)/2) else: return " +" + str((i-10)/2) if ( __name__ == "__main__" ): sets = [] abilities = ["strength", "dexterity", "constitution", "intelligence", "wisdom", "charisma"] currTotal = 0 currNum = 0 for setnum in range(0,3): sets.append([]) currTotal = 0 for i in range(0,6): if ( sys.argv.count("-a") > 0 or sys.argv.count("--aboveAverage") > 0): while ( currNum < 9 ): currNum = random.choice(range(3,18)) else: currNum = random.choice(range(3,18)) sets[setnum].append(string.center(str(currNum) + signIntStr(currNum), 15)) currTotal += currNum currNum = 0 sets[setnum].append(string.center(str(currTotal), 15)) print " "*20 + string.center(suggest(sets[0]), 15) + string.center(suggest(sets[1]), 15) + string.center(suggest(sets[2]), 15) for i in range(0,6): print string.center(abilities[i], 20) + sets[0][i] + sets[1][i] + sets[2][i] print "-"*65 print string.center("totals", 20) + sets[0][6] + sets[1][6] + sets[2][6]