Jeu de devinette – Bac Pratique 2015 [ Algorithme + Python ]

Algo et Python 08-09-24
38 0

Travail demandé

On se propose de simuler le jeu suivant :

- Le jeu est initialisé par le choix d’un numéro de téléphone à 8 chiffres, ne commençant par zéro et qui est à deviner par un joueur.

- Le joueur propose successivement des chiffres. Pour chaque chiffre proposé, s’il est présent dans une ou plusieurs positions du numéro secret, il sera positionné aux mêmes emplacements.

- A tout moment, si le joueur pense avoir deviné le numéro secret, il peut proposer un numéro. S’il a trouvé le numéro secret, il a gagné.

- le joueur peut perdre de deux façons, soit il propose un numéro qui n’est pas le bon, soit il a proposé 5 numéros et n’a toujours trouvé le numéro cherché.

Exemple : Ci-dessous un exemple d’exécution pour le numéro secret ‘’83256221’’

La chaine de départ à afficher est :’’_ _ _ _ _ _ _ _’’

1ère exécution

Proposer un chiffre   4

Le numéro de téléphone est : _ _ _ _ _ _ _ _

Voulez-vous proposer un numéro O/N ? N

Proposer un chiffre  2

Le numéro de téléphone est : _ _ 2 _ _ 2 2 _

Voulez-vous proposer un numéro O/N ? N

Proposer un chiffre  3

Le numéro de téléphone est : _ 3 2 _ _ 2 2 _

Voulez-vous proposer un numéro O/N ? O

Proposer un numéro : 83256221

Bravo  ! Vous avez gagné

2ème  exécution

Proposer un chiffre   4

Le numéro de téléphone est : _ _ _ _ _ _ _ _

Voulez-vous proposer un numéro O/N ? N

Proposer un chiffre ? 2

Le numéro de téléphone est : _ _ 2 _ _ 2 2 _

Voulez-vous proposer un numéro O/N ? N

Proposer un chiffre ? 3

Le numéro de téléphone est : _ 3 2 _ _ 2 2 _

Voulez-vous proposer un numéro O/N ? N

Proposer un chiffre ? 0

Le numéro de téléphone est : _ 3 2 _ _ 2 2 _

Voulez-vous proposer un numéro O/N ? N

Proposer un chiffre ? 5

Le numéro de téléphone est : _ 3 2 5 _ 2 2 _

Proposer un numéro : 93256224

Désolé  ! Vous avez perdu

Ecrire un programme Python qui permet de composer un numéro de téléphone (8 chiffres) choisi aléatoirement par l’ordinateur et simuler le jeu comme décrit ci-dessus.

Solution Algorithmique

Pour simuler ce jeu de devinette de numéro de téléphone à 8 chiffres, il faut mettre en place un algorithme qui gère plusieurs aspects : la génération d’un numéro de téléphone à deviner, la gestion des propositions du joueur, le suivi des indices donnés au joueur après chaque proposition de chiffre, et les conditions de victoire ou de défaite.

1- Initialisation du numéro de téléphone :

Le numéro à deviner est un entier à 8 chiffres, qui ne commence pas par zéro.

2- Propositions du joueur :

Le joueur propose un chiffre à chaque tour.

Si ce chiffre est présent dans le numéro secret, il est révélé à toutes les positions correspondantes.

Si le joueur pense avoir deviné tout le numéro, il peut soumettre une proposition complète du numéro de téléphone.

3- Conditions de victoire et de défaite :

Le joueur gagne s’il propose correctement le numéro secret.

Le joueur perd s’il propose un numéro incorrect ou s’il atteint 5 tentatives de soumission de numéros sans succès.

Algorithme de simulation :

1- Étape d'initialisation :

Générer un numéro de téléphone aléatoire à 8 chiffres qui ne commence pas par zéro.

Initialiser un tableau pour représenter l'état du numéro deviné par le joueur (avec des positions non devinées initialisées à des « _ »).

2- Étape de jeu :

Le joueur propose un chiffre.

Vérifier si ce chiffre est présent dans le numéro secret.

Si oui, révéler ce chiffre aux positions correspondantes dans l'affichage du numéro deviné.

Si non, continuer.

Le joueur peut, à tout moment, soumettre une tentative de numéro complet.

3- Conditions de fin :

Le joueur gagne s'il devine entièrement le numéro.

Le joueur perd s'il soumet un numéro incorrect ou s’il atteint 5 propositions incorrectes.

Dans cet algorithme, On va utiliser deux fonctions:

Algorithme du programme principal

La fonction saisie

Cette fonction retourne un entier positif formé de 8 chiffres.

Déclaration des objets

Objet Type / Nature
n entier

 

La procédure jeu

Cette procédure simule ce jeu de devinette de numéro de téléphone à 8 chiffres

Déclaration des objets

Objet Type / Nature
telephone entier
ch chaîne des caractères
ch1 chaîne des caractères
sortir booléen
nbr_essai entier
i entier
reponse caractère
chiffre caractère
numero_propose entier

 

Solution en Python

Exécution du programme

Solution en Python et Designer QT

Pour créer une application en Python pour composer un numéro de téléphone (8 chiffres) choisi aléatoirement par l’ordinateur et simuler le jeu comme décrit ci-dessus en utilisant Qt Designer pour l'interface graphique, suivez ces étapes :

1- Créer l'interface graphique avec Qt Designer

a- Ouvrez Qt Designer et créez un nouveau fichier de type Main Window.

b- Ajoutez ces widgets:

QPushButton nommé 'verifier_chiffre_bt' pour exécuter le module tester_chiffre.

QPushButton nommé 'verifier_numero_bt' pour exécuter le module tester_numero.

QLabel nommé 'msg' pour afficher un message d'erreur et le résultat de la devinette du numéro de téléphone.

QLineEdit nommé 'chiffre' pour entrer un chiffre.

QLineEdit nommé 'numero' pour entrer un numéro de 8 chiffres.

Enregistrez le fichier avec l'extension .ui, par exemple deviner_telephone-interface.ui.

2- Créer le script Python pour l'application

Voici un exemple de script Python qui utilise l'interface graphique générée par Qt Designer.

Exécution du programme

 

Vous pouvez voir aussi :

1) des exercices sur les chaînes des caractères

2) des exercices sur les tableaux

3) des sujets Bac pratique

4) des sujets Bac théorique

0 commentaire

laisser un commentaire

Veuillez noter s'il vous plaît*

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Passion de robotique

Atelier robotique

Construction des robots

Bras robotique

Maison intelligente

But de ce site web

La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.

Coordonnées

Zaouiet Kontech-Jemmel-Monastir-Tunisie

+216 92 886 231

medaliprof@gmail.com

Photos des articles

Site robotique réalisé par Mohamed Ali-Prof Info