Sur cette page se trouvent des exercices supplémentaires pour vous entraîner. Ils sont classés par niveau de difficulté :
Consigne : Vous devez écrire un programme qui permet de trouver un nombre entier saisi par l'utilisateur en faisant le moins d'itération possible (en faisant le moins de tentatives possible).
Astuce :
Utilisez une méthode de recherche dichotomique pour réduire le nombre de tentatives.
RĂ©sultat attendu :
>> Bienvenue au jeu du devin !
>> Veuillez choisir un nombre entre 1 et 100.
>> Entrez un nombre entre 1 et 100 : 33
>> Essai 1: Je pense que c est 50.
>> C est trop haut.
>> Essai 2: Je pense que c est 25.
>> C est trop bas.
>> Essai 3: Je pense que c est 37.
>> C est trop haut.
>> Essai 4: Je pense que c est 31.
>> C est trop bas.
>> Essai 5: Je pense que c est 34.
>> C est trop haut.
>> Essai 6: Je pense que c est 32.
>> C est trop bas.
>> Essai 7: Je pense que c est 33.
>> J ai deviné le nombre en 7 essais ! C était bien 33.
Consigne : Vous devez écrire un programme qui permet à un utilisateur de jouer au jeu du pendu. Le but du jeu est de deviner un mot en proposant une lettre à la fois. L'utilisateur a un nombre limité de tentatives pour deviner le mot avant de perdre.
Règles :
Consigne : Vous devez écrire une fonction en Python pour résoudre le problème des tours de Hanoï en déplaçant des disques d'une tour à une autre en suivant certaines règles. Vous devez afficher la séquence des mouvements effectués.
Règles des Tours de Hanoï :
Astuce 1 :
Astuce 2 :
Implémentez une fonction récursive hanoi(n, A, B, C) qui déplace n disques de la tour A à la tour C en utilisant la tour B comme intermédiaire.
def hanoi(n, source, auxiliary, target):
if n == 1:
print(f"DĂ©placez le disque 1 de {source} Ă {target}")
else:
# Étape 1 : Déplacer n-1 disques de 'source' vers 'auxiliary' en utilisant 'target'
# Étape 2 : Déplacer le disque restant de 'source' vers 'target'
# Étape 3 : Déplacer les n-1 disques de 'auxiliary' vers 'target' en utilisant 'source'
Consigne : Vous allez écrire un programme qui permet à un joueur de jouer à deux jeux de casino populaires : la roulette et le blackjack. L'utilisateur pourra parier de l'argent fictif et tenter de gagner ou de perdre en fonction des règles des deux jeux. Vous pourrez amender ensuite le Casino avec d’autres jeux de votre choix.
Etape 1 : Casino
Etape 2 : Roulette
Etape 3 : Blackjack
Etape 4 : Fin du jeu
Consigne : Vous devez écrire un programme en Python pour résoudre un jeu de Sudoku 4x4. Vous devez afficher la solution du jeu.
Une grille de Sudoku 4x4 peut être représentée comme une liste de listes de cette manière :
_ = None
grid = [
[1, _, 2, 3],
[_, _, 1, 4],
[4, 1, _, _],
[_, _, 4, 1]
]
Note : Ici, _
représente une case vide.
Règles du Sudoku :
Question 1 : VĂ©rifier si la grille est correctement remplie
Créez une fonction is_grid_valid(grid)
qui vérifie si la grille suit les règles du Sudoku.
Question 2 : Trouver les valeurs possibles pour une cellule
Créez une fonction possible_values(grid, row, col)
qui prend une grille et la position d'une case vide (ligne et colonne) et renvoie une liste des valeurs possibles pour cette case selon les règles du Sudoku.
Question 3 : RĂ©soudre la grille
Créez une fonction solve(grid)
qui essaie de remplir la grille Sudoku avec des valeurs valides. Utilisez une approche de type backtracking (à rechercher sur internet) pour tester différentes possibilités jusqu'à trouver une solution.
Astuce :
Squelette du programme :
_ = None # Utilisation de _ pour représenter les cases vides (None)
def is_row_valid(grid: list, row: int) -> bool:
"""
Vérifie si une ligne donnée est valide :
Args:
grid (list): La grille du Sudoku 4x4.
row (int): Le numéro de la ligne à vérifier.
Returns:
bool: True si la ligne est valide, False sinon.
"""
def is_column_valid(grid: list, col: int) -> bool:
"""
Vérifie si une colonne donnée est valide :
Args:
grid (list): La grille du Sudoku 4x4.
col (int): Le numéro de la colonne à vérifier.
Returns:
bool: True si la colonne est valide, False sinon.
"""
def is_subgrid_valid(grid: list, row: int, col: int) -> bool:
"""
VĂ©rifie si une sous-grille 2x2 est valide :
Args:
grid (list): La grille du Sudoku 4x4.
row (int): Le numéro de la ligne de départ de la sous-grille.
col (int): Le numéro de la colonne de départ de la sous-grille.
Returns:
bool: True si la sous-grille est valide, False sinon.
"""
def is_grid_valid(grid: list) -> bool:
"""
Vérifie si toute la grille est valide en respectant les règles du Sudoku.
Args:
grid (list): La grille du Sudoku 4x4.
Returns:
bool: True si toute la grille est valide, False sinon.
"""
def possible_values(grid: list, row: int, col: int) -> list:
"""
Renvoie la liste des valeurs possibles pour une case vide donnée.
Args:
grid (list): La grille du Sudoku 4x4.
row (int): Le numéro de la ligne de la case vide.
col (int): Le numéro de la colonne de la case vide.
Returns:
list: Liste des valeurs possibles pour la case vide.
"""
def solve(grid: list) -> bool:
"""
RĂ©sout la grille Sudoku en utilisant une approche de backtracking.
Args:
grid (list): La grille du Sudoku 4x4.
Returns:
bool: True si la grille est résolue, False sinon.
"""
Consigne : Vous devez écrire un programme en Python pour résoudre un carré magique d'ordre n saisi au clavier par l'utilisateur et afficher la solution.
Règles du Carré Magique :
Exemple d'un carré magique d'ordre 3 :
# +---+---+---+
# | 8 | 1 | 6 | 15
# +---+---+---+
# | 3 | 5 | 7 | 15
# +---+---+---+
# | 4 | 9 | 2 | 15
# +---+---+---+
# / 15 15 15 \
# 15 15
Astuce :
Utilisez le procédé de La Loubère pour générer un carré magique d'ordre impair.
RĂ©sultat attendu :
>> Saisir l'ordre du carré magique : 5
>> Carré magique d'ordre 5 :
>> +----+----+----+----+----+
>> | 17 | 24 | 1 | 8 | 15 |
>> +----+----+----+----+----+
>> | 23 | 5 | 7 | 14 | 16 |
>> +----+----+----+----+----+
>> | 4 | 6 | 13 | 20 | 22 |
>> +----+----+----+----+----+
>> | 10 | 12 | 19 | 21 | 3 |
>> +----+----+----+----+----+
>> | 11 | 18 | 25 | 2 | 9 |
>> +----+----+----+----+----+
>> La constante magique est 65.
Consigne : Implémentez un jeu d'échecs, permettant à deux joueurs de déplacer leurs pièces à tour de rôle, en saisissant au clavier les coups à jouer. Le jeu doit afficher un échiquier avec les pièces blanches en bas et les pièces noires en haut, comme dans une véritable partie d'échecs. Vous pouvez coloriser les affichage en utilisant Colorama (qui s’installe avec pip install colorama
). Par exemple, vous pouvez utiliser la couleur rouge pour les pièces noires.
Règles du Jeu d'Echecs "Simple" :
Le programme ne prend pas en compte toutes les règles du jeu d'échecs. Par exemple :
.. discoverList::
Les mouvements spécifiques à chaque type de pièce ne sont pas gérés (tous les coups sont permis tant que la case d'arrivée est valide).
Il n'y a pas de gestion de l'Ă©chec et mat et de la promotion de pions.
* Les joueurs doivent simplement saisir des mouvements valides (les coups non conformes sont rejetés).
Astuce :
RĂ©sultat attendu :
>> Plateau d Ă©checs:
>> T C F R R F C T
>> P P P P P P P P
>> . . . . . . . .
>> . . . . . . . .
>> . . . . . . . .
>> . . . . . . . .
>> P P P P P P P P
>> T C F R R F C T
>> Tour du joueur blanc.
>> Entrez la position de départ (ex : e2) : e2
>> Entrez la position d arrivée (ex : e4) : e4
>> Plateau d Ă©checs:
>> T C F R R F C T
>> P P P P P P P P
>> . . . . . . . .
>> . . . . P . . .
>> . . . . . . . .
>> . . . . . . . .
>> P P P P . P P P
>> T C F R R F C T
>> Tour du joueur noir.
>> Entrez la position de départ (ex : e2) : e
>> Entrez la position d arrivée (ex : e4) : 7
>> Positions non valides. RĂ©essayez.