Rules:Skill Check Table

From Adonthell
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.

In general, a score between 3 and 10 would be a good choice in early parts of the game, whereas a score between 10 and 15 could be suitable late in the game (remember that a rank of 5 equals mastery of that skill, so higher scores should be reserved for only the most extreme situations.)

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)