Opération dans une variable

Fermé
fl47dt - Modifié par fl47dt le 14/03/2016 à 21:51
Sugel Messages postés 4070 Date d'inscription jeudi 18 août 2011 Statut Membre Dernière intervention 19 juin 2017 - 14 mars 2016 à 23:42
Bonjour,

Débutant sur python depuis 2-3 jours, je commence à comprendre les bases et aujourd'hui, j'ai voulu recréer "le jeu des allumettes" en langage python.
Mais je suis confronté à un problème :
__________________________________________________

import random

a = "I"*20

RepOrdi = random.randint(1,4)

print("Il y a 20 allumettes, vous allez proposer un nombre entre 1 et 4, ensuite ce sera au tour de l'ordinateur, celui qui enlève la dernière allumette à perdu.")

print(a)

RepUser = int(input("Entrez un nombre entre 1 et 4 :"))

a = "I"*20 - RepUser
___________________________________________________

Vous pouvez voir que sur la dernière ligne, j'ai voulu marquer le nombre d'allumettes MOINS le nombre choisi par l'utilisateur. Par exemple l'utilisateur choisi 2, alors a = "I"*20 - 2, donc "I"*18. Le problème c'est que je ne sais pas comment formuler ça. Je ne sais pas si je me suis bien exprimé mais si vous avez compris, auriez-vous une solution ?

1 réponse

Sugel Messages postés 4070 Date d'inscription jeudi 18 août 2011 Statut Membre Dernière intervention 19 juin 2017 724
14 mars 2016 à 23:42
"I"*20 construit une chaîne de caractères, tu ne peux pas lui soustraire un nombre. Joue un peu dans l’interpréteur avec les fonctions type, dir et help, ça t'aidera.

import random

n = 20
def render(a):
    print("I"*a)

gagne = True

print("Il y a 20 allumettes, vous allez proposer un nombre entre 1 et 4, ensuite ce sera au tour de l'ordinateur, celui qui enlève la dernière allumette à perdu.")
while n > 0:
    render(n)
    n -= int(input("Entrez un nombre entre 1 et 4 :"))
    if n <= 0:
        gagne = False
        break
    n -= random.randint(1,4)

if gagne:
    print("bravo!")
else:
    print("dommage...")


0