You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
2.7 KiB
70 lines
2.7 KiB
import random
|
|
from colorama import Fore, Style, init
|
|
|
|
|
|
# Fonction pour afficher la mémoire actuelle
|
|
def afficher_memoire(memoire, lastEditedLine):
|
|
for i, ligne in enumerate(memoire):
|
|
if lastEditedLine != None and i == lastEditedLine:
|
|
print(Fore.RED + f"Ligne {i + 1}: {' '.join(map(str, ligne))}" + Fore.WHITE)
|
|
else :
|
|
print(Fore.WHITE + f"Ligne {i + 1}: {' '.join(map(str, ligne))}")
|
|
|
|
# Fonction pour générer une mémoire aléatoire
|
|
def generer_memoire():
|
|
return [[random.randint(0, 1) for _ in range(10)] for _ in range(10)]
|
|
|
|
# Fonction pour simuler un coup de marteau
|
|
def coup_de_marteau(memoire):
|
|
if random.randint(1, 10) == 1:
|
|
ligne_modifiee = random.randint(0, 9)
|
|
bit_modifie = random.randint(0, 9)
|
|
memoire[ligne_modifiee][bit_modifie] = 1 - memoire[ligne_modifiee][bit_modifie]
|
|
return ligne_modifiee
|
|
return None
|
|
|
|
# Fonction principale
|
|
def main():
|
|
lastEditedLine = None
|
|
memoire = generer_memoire()
|
|
print("Bienvenue dans le jeu de la mémoire !")
|
|
|
|
while True:
|
|
print("\nMenu:")
|
|
print("1. Afficher la mémoire")
|
|
print("2. Coup de marteau")
|
|
print("3. Submit")
|
|
print("4. Quitter")
|
|
|
|
choix = input("Choisissez une option (1/2/3/4): ")
|
|
|
|
if choix == '1':
|
|
afficher_memoire(memoire, lastEditedLine)
|
|
elif choix == '2':
|
|
ligne_modifiee = coup_de_marteau(memoire)
|
|
print(Fore.CYAN + "Un coup de marteau a été effectué !"+ Fore.WHITE)
|
|
if ligne_modifiee is not None:
|
|
#print(f"Un coup de marteau a modifié la ligne {ligne_modifiee + 1}.")
|
|
lastEditedLine = ligne_modifiee
|
|
elif choix == '3':
|
|
ligne_guess = int(input("Entrez le numéro de la ligne que vous pensez avoir été modifiée (1-10) : ")) - 1
|
|
if ligne_guess >= 0 and ligne_guess < 10:
|
|
#if memoire[ligne_guess] == generer_memoire()[ligne_guess]:
|
|
if lastEditedLine == ligne_guess :
|
|
print(Fore.GREEN + "Félicitations ! Vous avez gagné !"+ Fore.WHITE + "[01100100 01101111 01100011 01110011 00101110 01100111 01101111 01101111]")
|
|
break
|
|
else:
|
|
print(Fore.RED + "Désolé, la ligne que vous avez choisie n'a pas été modifiée. Recommencez !"+ Fore.WHITE)
|
|
else:
|
|
print(Fore.RED + "Numéro de ligne invalide. Veuillez choisir un numéro de ligne entre 1 et 10."+ Fore.WHITE)
|
|
elif choix == '4':
|
|
print("Au revoir !")
|
|
break
|
|
else:
|
|
print("Option invalide. Veuillez choisir une option valide (1/2/3/4).")
|
|
|
|
if __name__ == "__main__":
|
|
main()
|
|
|
|
|