Rules:Skill Check Table

From Adonthell
Revision as of 21:19, 23 August 2009 by Ksterker (talk | contribs) (Added some explaining text and algorithm)
Jump to navigation Jump to search

Variable Skill Check Table

The following table lists the likelyhood to beat a certain score in variable skill checks at a given rank. It shall aid designers to balance those checks according to the stage of the game and difficulty of the situation. As a rule of thumb, one can assume higher ranks at later points in the game, but it should be noted that not all skills will necessarily be raised to 5th rank.

Score \ Rank 1 2 3 4 5
1 100.00% 100.00% 100.00% 100.00% 100.00%
2 83.33% 100.00% 100.00% 100.00% 100.00%
3 66.67% 97.22% 100.00% 100.00% 100.00%
4 50.00% 91.67% 99.54% 100.00% 100.00%
5 33.33% 83.33% 98.15% 99.92% 100.00%
6 16.67% 72.22% 95.37% 99.61% 99.99%
7 0.00% 58.33% 90.74% 98.84% 99.92%
8 0.00% 41.67% 83.80% 97.30% 99.73%
9 0.00% 27.78% 74.07% 94.60% 99.28%
10 0.00% 16.67% 62.50% 90.28% 98.38%
11 0.00% 8.33% 50.00% 84.10% 96.76%
12 0.00% 2.78% 37.50% 76.08% 94.12%
13 0.00% 0.00% 25.93% 66.44% 90.20%
14 0.00% 0.00% 16.20% 55.63% 84.80%
15 0.00% 0.00% 9.26% 44.37% 77.85%
16 0.00% 0.00% 4.63% 33.56% 69.48%
17 0.00% 0.00% 1.85% 23.92% 60.03%
18 0.00% 0.00% 0.46% 15.90% 50.00%
19 0.00% 0.00% 0.00% 9.72% 39.97%
20 0.00% 0.00% 0.00% 5.40% 30.52%
21 0.00% 0.00% 0.00% 2.70% 22.15%
22 0.00% 0.00% 0.00% 1.16% 15.20%
23 0.00% 0.00% 0.00% 0.39% 9.80%
24 0.00% 0.00% 0.00% 0.08% 5.88%
25 0.00% 0.00% 0.00% 0.00% 3.24%
26 0.00% 0.00% 0.00% 0.00% 1.62%
27 0.00% 0.00% 0.00% 0.00% 0.72%
28 0.00% 0.00% 0.00% 0.00% 0.27%
29 0.00% 0.00% 0.00% 0.00% 0.08%
30 0.00% 0.00% 0.00% 0.00% 0.01%


Calculating Probabilities

The following snippet of Python code has been used in calculating the probabilities above.

 # -- k: sides of die
 k = 6
 
 def sum_dice (dice, sum, score):
     count = 0
     if dice == 0:
         if sum >= score: count = 1
     else:
         for x in range (1, k + 1):      
             count = count + sum_dice (dice-1, x+sum, score)
     return count
 
 # -- x: number of dice (1-5)
 for x in range (1, 6):
     # -- n: scores possible with x dice
     for s in range (x*1, x*k+1):
         count = sum_dice (x, 0, s)
         p = (count*100.0)/(k**x)
         print "%id%i: p(%i) = %.2f%%" % (x, k, s, p)