Even wat info over deze opdracht. Ze zijn blijkbaar gestart met een container met de gele kleurstof. De overige kleuren (oranje, rood, groen en blauw) konden ze alleen scoren door op een vakje met een gekleurd flesje te komen. Opvallend is dat er maar 2 vakjes zijn voor blauw en het eerste komt pas bij vakje 60. Voor rood zijn er 5 vakjes, voor oranje en groen allebei 4.
De opbrengst per ijsje neemt exponentieel toe met het aantal kleuren. IJsjes met 1, 2 of 3 kleuren leveren nauwelijks iets op (5, 10 en 25 euro). Alleen ijsjes met 5 kleuren (€100) zijn echt interessant. Blauw komt pas laat in het spel, dus er kan in het begin niet veel geld worden gewonnen.
Ik heb een exacte simulatie gemaakt van het spel, wat mogelijk is omdat het hele speelbord duidelijk in beeld komt. Net als bij ganzenbord tel je vanaf 100 weer terug als je een te hoog aantal ogen gooit om op 100 uit te komen. Voor de liefhebbers zal ik hieronder het Python script plaatsen onder spoiler tags.
Zoals je kan zien heb je in 50% van de gevallen meer dan 50 beurten nodig. In slechts 10% van de gevallen red je het met 20 beurten of minder. Er is een kans van 20% dat je 100 beurten of meer nodig hebt.
Dan het aantal keren dat je op een vakje met een kleurenflesje komt. In 50% van de gevallen is dit 9 of meer. De kans is 10% dat je 3 of minder gekleurde flesjes tegenkomt. Aan de andere kant is de kans ook 10% dat je 23 of meer gekleurde flesje tegenkomt.
import random
ladders = { 2: 38, 4: 14, 8: 30, 21: 42, 28: 57, 50: 67, 71: 92, 80: 99}
snakes = { 32: 10, 36: 6, 48: 26, 62: 18, 88: 24, 95: 56, 96: 78}
red = [ 7, 25, 49, 77, 93]
orange = [ 14, 19, 43, 85]
green = [ 17, 27, 67, 79]
blue = [ 60, 72]
colours = red + orange + green + blue
def play(aantal):
random.seed(10)
num_colours = 100*[0]
num_moves = 1000*[0]
for i in range(aantal):
loc = 1
mov = 0
col = 0
while (loc < 100):
mov += 1
throw = random.randint(1, 6)
loc += throw
if loc > 100:
loc = 200 - loc
if loc in ladders:
loc = ladders[loc]
if loc in snakes:
loc = snakes[loc]
if loc in colours:
col += 1
num_colours[col] += 1
num_moves[mov] += 1
for i in range(len(num_colours)):
print(i, '\t', sum(num_colours[0:i])/1000)
for i in range(300):
print(i, '\t', sum(num_moves[0:i])/1000)