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 :

image

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

###(DĂ©s-)Active le code aprĂšs la ligne # Tests (insensible Ă  la casse)
(Ctrl+I)
Entrer ou sortir du mode "deux colonnes"
(Ctrl+Clic pour inverser les colonnes)
Entrer ou sortir du mode "plein Ă©cran"
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activĂ©, le texte copiĂ© dans le terminal est joint sur une seule ligne avant d'ĂȘtre copiĂ© dans le presse-papier

Solution
🐍 Script Python
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 :

🐍 Console Python
>>> nbre_coups()
👉 puis de vĂ©rifier "Ă  la main"