copiez collez dans un editeur et testez vous meme !!


    #---------------------------------------------------------------------
    import random
    eccart=int(input("entrez une valeur maximale qui definira l'ecart de jeu (vous jouerez entre 0 et la valeur max) : \n"))
    historique=[]
    choix=int(input("choisissez votre maniere de jouer! (1 ou 2) 1: vous devinez 2: la machine devine :\n"))
    #choix du mode de jeu 
    while (choix!=1 and choix!=2):
        choix=int(input(" ENTREE NON VALIDE choisissez votre maniere de jouer! (1 ou 2) 1: vous devinez 2: la machine devine :\n"))
    #previens la casse si le choix n'est pas valide 
    #-------------------------------------------------------------------------------------------------------------------------
    """fonction de guess PAR l'humain"""
    def human_guess():
        n=random.randint(1, eccart) #l'algo definit une valeur aleatoire dès le debut qui sera inchangée 
        guess=int(input("entrez un nombre: "))
        while guess != n: #test des valeurs 
            if guess < n :
                historique.append(f"guess: {guess}")
                print(f"Mon nombre est plus grand que {guess}  ;) \n")
                guess=int(input("entrez un nombre: "))
            elif guess > n :
                historique.append(f"guess: {guess}")
                print(f"Mon nombre est plus petit que {guess} ;) \n")
                guess=int(input("entrez un nombre: "))
        historique.append(f"final guess : {guess}")
        print("\nBRAVO HUMAIN TU DEPASSES LES ESPOIRS MIS EN TOI, TU M'AS VAINCU \n")
        print(f"voici l'historique de tes guess : {historique}")
        print(f"\ntu as trouvé en {len(historique)} coups")
    """on verifie si elle est plus grande ou plus petite, on ajoute a l'historique, et dès que la valeur correspond, on return la phrase finale puis l'historique dans lequel on append chaque guess"""
    #-------------------------------------------------------------------------------------------------------------------------
    #ici on definit les differentes fonction pour "accelerer le processus" 
    """premier cas si l'eccart est inferieur a 100"""

    def machine_guess100():
        i = 0
        j = eccart
        while i <= j:
            guess = random.randint(i, j)
            print(f"Je pense à : {guess}")
            response = input("Est-ce le bon nombre? (= pour oui, + pour plus grand, - pour plus petit) : \n").lower()

            if response == '=':
                historique.append(f"final guess : {guess}")
                print(f"J'ai trouvé ! Ton nombre était {guess}.")
                print(f"Voici l'historique de mes essais : {historique}")
                print(f"\nj'ai trouvé en {len(historique)} coups")
                break
            elif response == '+':
                historique.append(f"guess: {guess}")
                i = guess + 1
            elif response == '-':
                historique.append(f"guess: {guess}")
                j = guess - 1
            else:
                print("Réponse invalide. Veuillez répondre par '=', '+', ou '-'.\n")
        
        if i > j:
            print("Erreur : bornes incohérentes, tu t'es peut-être trompé dans tes signes ;).")

    def machine_guess1000():
        i = 0
        j = eccart
        while i <= j:
            if j - i <= 100:
                machine_guess100()
                return

            guess = random.randint(i, j)
            print(f"Je pense à : {guess}")
            response = input("Est-ce le bon nombre? (= pour oui, + pour plus grand, - pour plus petit) : \n").lower()

            if response == '=':
                historique.append(f"final guess : {guess}")
                print(f"J'ai trouvé ! Ton nombre était {guess}.")
                print(f"Voici l'historique de mes essais : {historique}")
                print(f"\nj'ai trouvé en {len(historique)} coups")
                return
            elif response == '+':
                historique.append(f"guess: {guess}")
                i = guess + 10
            elif response == '-':
                historique.append(f"guess: {guess}")
                j = guess - 10
            else:
                print("Réponse invalide. Veuillez répondre par '=', '+', ou '-'.\n")

        if i > j:
            print("Erreur : bornes incohérentes, tu t'es peut-être trompé dans tes signes ;).")

    def machine_guess100000():
        i = 0
        j = eccart
        while i <= j:
            if j - i <= 1000:
                machine_guess1000()
                return

            guess = random.randint(i, j)
            print(f"Je pense à : {guess}")
            response = input("Est-ce le bon nombre? (= pour oui, + pour plus grand, - pour plus petit) : \n").lower()

            if response == '=':
                historique.append(f"final guess : {guess}")
                print(f"J'ai trouvé ! Ton nombre était {guess}.")
                print(f"Voici l'historique de mes essais : {historique}")
                print(f"\nj'ai trouvé en {len(historique)} coups")
                return
            elif response == '+':
                historique.append(f"guess: {guess}")
                i = guess + 100
            elif response == '-':
                historique.append(f"guess: {guess}")
                j = guess - 100
            else:
                print("Réponse invalide. Veuillez répondre par '=', '+', ou '-'.\n")

        if i > j:
            print("Erreur : bornes incohérentes, tu t'es peut-être trompé dans tes signes ;).")

    def machine_guess():
        if eccart >= 100000:
            machine_guess100000()
        elif eccart >= 1000:
            machine_guess1000()
        else:
            machine_guess100()

    if(choix==1):
        print("LET'S GO TE BATTRE CONTRE L'ALGO : ")
        print("       ________________")
        print("     |'-.--._ _________:")
        print("     |  /    |  __    __\\")
        print("     | |  _  | [\\_\\= [\\_\\")
        print("     | |.' '. \\.........|")
        print("     | ( <)  ||:       :|_")
        print("      \\ '._.' | :.....: |_(o")
        print("       '-\\_   \\ .------./")
        print("       _   \\   ||.---.||  _")
        print("      / \\  '-._|/\\n~~\\n' | \\")
        print("     (| []=.--[===[()]===[) |")
        print("     <\\_/  \\_______/ _.' /_/")
        print("     ///            (_/_/")
        print("     |\\\\            [\\\\")
        print("     ||:|           | I|")
        print("     |::|           | I|")
        print("     ||:|           | I|")
        print("     ||:|           : \\:")
        print("     |\\:|            \\I|")
        print("     :/\\:            ([])")
        print("     ([])             [|")
        print("      ||              |\\_")
        print("     _/_\\_            [ -'-.__")
        print("    <]   \\>            \\_____.>")
        print("      \\__/")
        human_guess()
        
    if(choix==2):
        print("L'ALGO VA CHERCHER VOTRE VALEUR (pensez y fort et garder votre nombre en tete) : \n")
        print("     XXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
        print("  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")
        print(" XXXXXXXXXXXXXXXXXX         XXXXXXXX")
        print("XXXXXXXXXXXXXXXX              XXXXXXX")
        print("XXXXXXXXXXXXX                   XXXXX")
        print(" XXX     _________ _________     XXX ")
        print("  XX    I  _xxxxx I xxxxx_  I    XXX")
        print(" ( X----I         I         I----X )")
        print("( +I    I      00 I 00      I    I+ )")
        print(" ( I    I    __0  I  0__    I    I )")
        print("  (I    I______ /   \\______I    I)")
        print("   I           ( ___ )           I")
        print("   I    _  :::::::::::::::  _    i")
        print("    \\   \\___ ::::::::: ___/    /")
        print("     \\_     \\_________/      _/")
        print("       \\       \\___,        /")
        print("         \\                 /")
        print("          |\\             /|")
        print("          |  \\_________/  |")
        machine_guess()