Jeu de plateau
On considÚre une piste carrée qui contient 4 cases par cÎté. Les cases sont numérotées de 0 inclus à 12 exclu comme ci-dessous :
Lâobjectif de lâexercice est dâimplĂ©menter le jeu suivant :
Au dĂ©part, le joueur place son pion sur la case 0. A chaque coup, il lance un dĂ© Ă©quilibrĂ© Ă six faces et avance son pion dâautant de cases que le nombre indiquĂ© par le dĂ© (entre 1 et 6 inclus) dans le sens des aiguilles dâune montre.
Par exemple, sâil obtient 2 au premier lancer, il pose son pion sur la case 2 puis sâil obtient 6 au deuxiĂšme lancer, il le pose sur la case 8, puis sâil obtient Ă nouveau 6, il pose le pion sur la case 2.
Le jeu se termine lorsque le joueur a posé son pion sur toutes les cases de la piste.
Compléter la fonction nbre_coups
ci-dessous de sorte quâelle renvoie le nombre de
lancers aléatoires nécessaires pour terminer le jeu.
Proposer ensuite quelques tests pour en vérifier le fonctionnement.
Compléter le code ci-dessous
Solution
from random import randint
def nbre_coups():
n = 0
cases_vues = [0]
case_en_cours = 0
nbre_cases = 12
while len(cases_vues) < nbre_cases:
x = randint(1, 6)
print("x = ", x)
case_en_cours = (case_en_cours + x) % nbre_cases
if case_en_cours not in cases_vues:
cases_vues.append(case_en_cours)
n = n + 1
return n
Remarque
Il est difficile de répondre à la question : "Proposer ensuite quelques tests pour en vérifier le fonctionnement."
đ On peut imaginer de rajouter un print(x = , x)
, puis de tester en console :
>>> nbre_coups()
# Tests
(insensible Ă la casse)(Ctrl+I)
(Ctrl+Clic pour inverser les colonnes)