Bij Yahtzee1 werpt de speler met 5 dobbelstenen.

Schrijf volgende functies die nuttig zijn bij het uitwerken van het volledige spel. Elke functie heeft als argument stenen die een list is met alle waarden van de dobbelstenen. Zorg dat de functie ook correct werkt als er meer dan 5 dobbelstenen geworpen worden en als een dobbelsteen met meer of minder kanten wordt gebruikt (Dodona controleert dit!)

Voorbeelden

>>> is_yahtzee([5, 4, 3, 5, 4]) 
False
>>> is_yahtzee([4, 4, 4, 4, 4]) 
True
>>> is_yahtzee([1, 1, 2, 2, 3, 3, 3, 2, 3, 3]) 
False
>>> is_yahtzee([3, 3, 3, 3, 3, 3, 3, 3, 3, 3]) 
True

>>> is_grote_straat([1, 3, 3, 4, 1]) 
False
>>> is_grote_straat([1, 5, 4, 2, 3]) 
True
>>> is_grote_straat([6, 3, 1, 4]) 
False
>>> is_grote_straat([3, 2, 1, 4]) 
True
>>> is_grote_straat([2, 7, 5, 8, 6, 10, 8, 1, 2, 4]) 
False
>>> is_grote_straat([5, 6, 2, 4, 10, 7, 9, 3, 8, 1]) 
True

Tips

Ik vind het juiste type niet voor de parameters van deze functies.
def is_yathzee(stenen: list) -> bool
def is_grote_straat(stenen: list) -> bool
Hoe kan ik snel zien of alle dobbelstenen hetzelfde aantal ogen hebben?
  • sorteer de dobbelstenen
  • vergelijk het eerste element met het laatste element in de gesorteerde lijst.
Wat is het verschil tussen .sort en sorted ?
  • De methode .sort kan je toepassen op een list en zal de list sorteren.
  • De Python functie sorted kan je toepassen op een iterable, dus ook op een list, maar deze zal een gesorteerde list teruggeven, zonder de parameter te wijzigen.
Hoe kan ik een grote straat controleren?
  • sorteer de dobbelstenen;
  • overloop de gesorteerde lijst vanaf het tweede element, en kijk of dit element net 1 groter is dan het voorgaande element;
  • van zodra de voorwaarde niet meer vervult is kan je besluiten dat dit geen grote straat is;
  • enkel als de voorwaarde vervuld is voor alle elementen uit de lijst is dit een grote straat.
Ik krijg een error voor de index in de lijst! Hoe los ik dat op? Als je in een lijst l[i-1] of l[i+1] gebruikt, moet je zelf garanderen dat de index i-1 >= 0 en i+1 < len(l)