Bienvenue

Dans cette section, vous trouverez des ressources sur les cours que j'enseigne à savoir de la documentation, du code, des vidéos etc. Dès que je trouve quelque chose d'intéressant à partager, je le mettrai à disposition ici pour mes étudiants.


Jeu - Roche - Papier - Ciseau

Programme 1 : Écrire un programme qui simule le jeu roche papier ciseau.

Version 1

		##Auteur : Enseignant
		##École : Collège Marie Victorin 
		##Session : Automne 2023
		##Titre du cours : Introduction à la programmation avec Python
		##Titre du programme : roche_papier_ciseau.py
		##Courte description du programme : Programme qui simule le jeu roche-papier-ciseau.
		##Version : 1.0
		##Date : 00/00/2023
		##Langage et version : Python - 3.11
		##Règles de fonctionnement du programme :
		##

		#*************************************************
		# Programme qui simule le jeu roche-papier-ciseau
		# Les boucles
		# Les cas multiples
		# Opérateurs logiques
		#*************************************************

		# Variables chaines de caractères
		strTitre = "\n--- Bienvenue au jeu roche - papier - ciseau ---"
		strSouligne = '-' * len(strTitre)
		strPrompt = '\nCombien de manches voulez-vous jouer ? : '
		strMsgErreurManche = 'Erreur, le nombre de manches est erroné'
		strJoueur1 = 'Joueur 1'
		strJoueur2 = 'Joueur 2'
		strMsgJoueur = '{}, quel est votre choix ?[r/p/c] : '
		strMsgScore = '\n{} a gagné cette manche! Score : {}-{}'
		strMsgMancheNulle = 'Manche nulle...'
		strFinProgramme = 'Fin de programme'
		strManchesRestantes = 'Il reste {} manches à jouer'
		strChoixJoueur1 = strChoixJoueur2 = ''
		strRoche = 'r'
		strPapier = 'p'
		strCiseau = 'c'
		strErreurPariteManche = 'Choisissez un nombre impair'
		strMsgFelicitations = '\n{} a gagné le match! Félicitations.'
		strScoreFinal = 'Score final : {}-{}'
		strChoixErrone = 'Erreur d\'entrée, veuillez recommencer.'

		# Variables booléennes
		boolDebut = False

		# Variables numériques
		intNombreManches = 0
		intScoreJoueur1 = intScoreJoueur2 = 0
		intMancheAJouer = intCompteur = 0

		# Début du programme
		# ==================

		# Affichage du titre du programme
		print(strSouligne)
		print(strTitre)
		print(strSouligne)
		while boolDebut != True:
			# Demande du nombre de manches à jouer
			intNombreManches = int(input(strPrompt))

			if intNombreManches < 0:
				print(strMsgErreurManche)
			else:

				#Sortie du programme lorsque le nombre de manches est nul
				if intNombreManches == 0:
					boolDebut = True
					print(strFinProgramme)
				else:
					# Afin qu'il puisse avoir un gagnant, le nombre de manche
					# doit être impair
					# S'il est pair, on le retape
					# On aurait pu incrémenter d'une unité pour rendre le jeu
					# jouable
					
					if intNombreManches % 2 == 0:
						#print(strErreurPariteManche)
						intNombreManches = intNombreManches + 1
						intMancheAJouer = intNombreManches
					else:
						# Au début, le nombre de manche à jour est le nombre entré par l'utilisateur
						intMancheAJouer = intNombreManches

					# On joue tant le compteur est inérieur au nombre de manches
					# ou que le nombre de manche restantes est nul
					while (intCompteur < intNombreManches) or intMancheAJouer > 0:

						# Affichage du nombre de manches à jouer
						print(strManchesRestantes.format(intMancheAJouer))

						# Le premier jouer s'élance
						strChoixJoueur1 = input(strMsgJoueur.format(strJoueur1))
						
						# Validation du choix du joueur 1
						if strChoixJoueur1 != strRoche and strChoixJoueur1 != strPapier and strChoixJoueur1 != strCiseau:
							intNombreManches = 0
							print(strChoixErrone)
						else:                    
							strChoixJoueur2 = input(strMsgJoueur.format(strJoueur2))

							# Validation du choix du joueur 2
							if strChoixJoueur2 != strRoche and strChoixJoueur2 != strPapier and strChoixJoueur2 != strCiseau:
								intNombreManches = 0
								print(strChoixErrone)
							else:                        
								if strChoixJoueur1 == strChoixJoueur2:
									print(strMsgMancheNulle)
								else:
									if strChoixJoueur1 == strRoche and strChoixJoueur2 == strCiseau:
										intScoreJoueur1 = intScoreJoueur1 + 1
										print(strMsgScore.format(strJoueur1, intScoreJoueur1, intScoreJoueur2))                                

									elif strChoixJoueur1 == strRoche and strChoixJoueur2 == strPapier:
										intScoreJoueur2 = intScoreJoueur2 + 1
										print(strMsgScore.format(strJoueur2, intScoreJoueur2, intScoreJoueur1))

									elif strChoixJoueur1 == strPapier and strChoixJoueur2 == strCiseau:
										intScoreJoueur2 = intScoreJoueur2 + 1
										print(strMsgScore.format(strJoueur2, intScoreJoueur2, intScoreJoueur1))

									elif strChoixJoueur1 == strPapier and strChoixJoueur2 == strRoche:
										intScoreJoueur1 = intScoreJoueur1 + 1
										print(strMsgScore.format(strJoueur1, intScoreJoueur1, intScoreJoueur2))

									elif strChoixJoueur1 == strCiseau and strChoixJoueur2 == strRoche:
										intScoreJoueur2 = intScoreJoueur2 + 1
										print(strMsgScore.format(strJoueur2, intScoreJoueur2, intScoreJoueur1))

									elif strChoixJoueur1 == strCiseau and strChoixJoueur2 == strPapier:
										intScoreJoueur1 = intScoreJoueur1 + 1
										print(strMsgScore.format(strJoueur1, intScoreJoueur1, intScoreJoueur2))

									else:
										print('Non prevu')

									# Incrémenter le compteur de manche
									# Lorsque les joueurs font des choix différents
									intCompteur = intCompteur + 1

									# Décrémenter le nombre de manche à jouer
									# Sauf en cas de match nul
									intMancheAJouer = intMancheAJouer - 1

					# Fin du match
					if intScoreJoueur1 > intScoreJoueur2:
						print(strMsgFelicitations.format(strJoueur1))
						print(strScoreFinal.format(intScoreJoueur1,intScoreJoueur2))
					else:
						print(strMsgFelicitations.format(strJoueur2))
						print(strScoreFinal.format(intScoreJoueur2, intScoreJoueur1))

					# Condition de fin de programme
					# Après affichage du score final
					boolDebut = True

					print(strFinProgramme)

		## Fin de programme
	  

W3schools

Python.org