Talk:Apocalypse World

From 1d4chan

Custom rules for rolling with advantage / disadvantage[edit]

Here is the code that was used to generate the table on the article page (aside from mising '+' symbols in the first column) (licensed CC0):

#! /usr/bin/env python3

import random

lower_threshold = 7
upper_threshold = 10

rounds = 1000000

print("{| class=\"wikitable\"")
print("|+Approximate Roll Probabilities")
print("|-")
print("!scope=\"col\"| Advantage")
print("!scope=\"col\"| Success")
print("!scope=\"col\"| Mixed")
print("!scope=\"col\"| Failure")
print("|-")

for advantage in range(2, -3, -1):

    failures = 0
    mixed = 0
    successes = 0

    for i in range (0, rounds):
        rolls = []
        for j in range(0, abs(advantage) + 2):
            rolls.append(random.randint(1, 6))
        rolls.sort()

        if advantage > 0:
            roll0 = rolls[-1]
            roll1 = rolls[-2]
        else:
            roll0 = rolls[0]
            roll1 = rolls[1]

        roll_sum = roll0 + roll1

        if roll_sum < lower_threshold:
            failures += 1
        elif roll_sum < upper_threshold:
            mixed += 1
        else:
            successes += 1

    failure_rate  = int(failures  / rounds * 100)
    mixed_rate    = int(mixed     / rounds * 100)
    success_rate  = int(successes / rounds * 100)

    print("!scope=\"row\"| " + str(advantage))
    print("| " + str(success_rate) + "%")
    print("| " + str(mixed_rate) + "%")
    print("| " + str(failure_rate) + "%")
    print("|-")

print("|}")