🚀
SII Academy
  • Bienvenue !
  • Tronc commun
  • L'énergie dans les systèmes mécatroniques 🔋
    • Cours
      • La chaîne fonctionnelle
      • La chaîne de puissance
      • Puissance et énergie
      • Grandeurs d'effort et grandeurs de flux
      • Rendement
      • Autonomie énergétique
      • Engrenages
      • Représentation SysML de la chaîne de puissance
    • Activités
      • Exercices corrigés ★
      • Pompe centrifuge ★
      • Perceuse sans fil ★★
      • Camper Trolley ★★
      • Scooter électrique ★★
      • Pont Jules Verne à Nantes ★★★
        • DT1. Diagramme des blocs internes
        • DT2. Documentation technique du moteur asynchrone
        • DT3. Documentation technique moteur synchrone
      • AirPod ★★★★
        • DT9 : Caractéristiques techniques du véhicule « AirPod »
        • DT10 : Classification des véhicules à moteur
        • DT11 : Rendements des constituants et résistance aérodynamique du véhicule
        • DR7
    • Synthèse
  • Le comportement mécanique des matériaux (Partie 1) 🔩
    • Cours
      • Introduction
      • Influence de la force de traction
      • Influence de la section
      • Influence de la longueur
      • Influence du matériaux
      • Notion de contrainte
      • La loi de Hooke
      • Limite élastique et rupture d'un matériau
    • Activités
      • Problème de physique ★
      • Saut à l’élastique ★★
      • Pont transbordeur de Nantes ★★★
    • Quiz
  • Le développement informatique en Python 💻
    • Cours
    • Activité guidée
      • Premiers pas avec Python et REPL
      • Création d'un jeu de dés
        • Affichage de messages
        • Notion de variables
        • Aléatoire en informatique
        • Les conditions
        • Les opérateurs booléens
        • Les entrée utilisateurs
        • Défi n°1
        • Les fonctions
        • Défi n°2
        • Les boucles
        • Défi n°3
    • Exercices corrigés
    • Développement de jeux vidéo
Propulsé par GitBook
Sur cette page

Cet article vous a-t-il été utile ?

  1. Le développement informatique en Python 💻
  2. Activité guidée
  3. Création d'un jeu de dés

Les boucles

PrécédentDéfi n°2SuivantDéfi n°3

Dernière mise à jour il y a 5 ans

Cet article vous a-t-il été utile ?

Notre programme est bien avancé, il gère désormais les règles de base et le score. Cependant, le programme ne permet de gérer le fait qu'un joueur retire le dé plusieurs fois.

Lorsque l'on veut répéter des instructions identique, on emploie des boucles.

Testez le code suivant dans REPL :

import random

print("Boucle For")
for i in range(10):
  print(i)

print("")

print("Boucle while")
i = 0
while i < 100:
  print(i)
  i = i + random.randint(1,10)

On obtient ce résultat :

C'est quand même plus pratique que d'écrire X fois la même ligne. On distingue généralement de types de boucles :

  • les boucle for qui s'arrêtent lorsqu'un nombre prédéterminé de répétition est atteint. Elles sont utilisées lorsque l'on sait à l'avance combien de fois on doit répéter une boucle,

  • les boucles while, qui s'arrêtent lorsqu'une condition est satisfaite. On les utilise lorsque l'on ne sait pas à l'avance combien de répétitions vont être réalisées.

Pourquoi parler de boucle pour notre jeu ? Une idée ... ?

On aimerait intégrer la règle : "tant que le joueur souhaite retirer le dé, le dé est lancé". Cela signifie que tant que la valeur du dé est différente de 1, le joueur peut relancer le dé.

Voici le code complet :

import random

def jeterLeDe():
  resultat = random.randint(1,6)
  print("Résultat du lancé : ")
  print(resultat)
  return resultat

def afficherLeScore(valeur1, valeur2):
  print("_________________________________")
  print("SCORES")
  print("Joueur 1 : {}       Joueur 2 : {}".format(valeur1, valeur2))
  print("_________________________________")

print("Bonjour, bienvenue dans le jeu du cochon !")

scoreJoueur1 = 0
scoreJoueur2 = 0
tourJoueur1 = True
rejouer = "o"

resultat = jeterLeDe()

while(rejouer == "o" and resultat != 1):
  if (resultat == 1):
    print("Le dé est tombé sur 1, vous passez votre tour")
    tourJoueur1 = False
  else : 
    print("Le dé n'est pas tombé sur 1")
    rejouer = input("Voulez vous rejouer ? (si oui, taper 'o')  : ")
    if(rejouer == "o"):
      resultat = jeterLeDe()
    else :
      scoreJoueur1 = scoreJoueur1 + resultat
      afficherLeScore(scoreJoueur1, scoreJoueur2)

Voici les résultats d'un test