Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

JEU - pierre, feuille, ciseau


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    octobre 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 17
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : octobre 2019
    Messages : 12
    Points : 6
    Points
    6
    Par défaut JEU - pierre, feuille, ciseau
    Hi, j'ai tenté le tout pour le tout pour corriger mon code mais je ne trouve pas de solution je vous le link en dessous ! Et je cherche une commande pour dire : "Appuyer sur entrer pour recommencer le jeux" et ou ça recommence si on appuie et si on appuie ailleurs ça ferme ! Et mon soucis est que ma fonction RESULTAT parfois n'affiche aucun gagnant ni perdant ! Je précise que je suis ouvert à tous mais que je reste débutant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    from random import *
     
    input("Pour commencer a jouer APPUYER sur entrer")
    p1=input("Entrer le prénom du joueur 1:")
    p2=input("Entrer le prénom du joueur 2:")
    x=0
    l=0
     
    def JEUXp1(x):
        x=randint(1,3) #p1
        return x
     
    def JEUXp2(l):
        l=randint(1,3) #p2
        return l
     
    #-------------------
    JEUXp1(x)
    JEUXp2(l)
    #-------------------
     
    def RESULTAT():
        if JEUXp1(x)==JEUXp2(l):
            print("Personne ne gagne")
        elif JEUXp1(x)==1:
            if JEUXp2(l)==2:
                print(p2,"gagne",p1)
            elif JEUXp2(l)==3:
                print(p1,"gagne",p2)
        elif JEUXp1(x)==2:
            if JEUXp2(l)==1:
                print(p1,"gagne",p2)
            elif JEUXp2(l)==3:
                print(p2,"gagne",p1)
        elif JEUXp1(x)==3:
            if JEUXp2(l)==1:
                print(p2,"gagne",p1)
            elif JEUXp2(l)==2:
                print(p1,"gagne",p2)
     
    RESULTAT()
     
    input()

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    octobre 2008
    Messages
    3 843
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : octobre 2008
    Messages : 3 843
    Points : 6 023
    Points
    6 023
    Par défaut
    Salut,

    Sélectionne ton code et clique sur le bouton qui contient un #

    Tout d'abord, ceci ne sert à rien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #-------------------
    JEUXp1(x)
    JEUXp2(l)
    #-------------------
    Ensuite dans ton code tu fais sans cesse appel aux fonctions JEUXp1() et JEUXp2() donc tu recrées à chaque fois un nombre aléatoire, ne t'étonne pas qu'il n'y ait parfois pas de solution.

    Pour choisir de continuer le jeu ou le quitter il faut aussi mettre cela dans une fonction.

    Accessoirement l'argument des deux premières fonctions est inutile.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    octobre 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 17
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : octobre 2019
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Merci de ta réponse pour l'affichage du code sur le forum je crois avoir compris. J'ai corriger mes fautes avec la fonction qui se redéfinis tous le temps en les fixant sur des variables a et b. Les deux premières fonction ne servent a rien puisque je peut l'associer direct à la variable mais c'est pour mieux comprendre pour moi car je suis débutant. Maintenant je n'est absolument pas compris le concept pour que sa se répète ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    #-------------------
     
    from random import *
     
    input("Pour commencer a jouer APPUYER sur entrer")
    p1=input("Entrer le prénom du joueur 1:")
    p2=input("Entrer le prénom du joueur 2:")
    x=0
    l=0
     
    def JEUXp1(x):
        x=randint(1,3) #p1
        return x
     
    def JEUXp2(l):
        l=randint(1,3) #p2
        return l
     
    #-------------------
    a=JEUXp1(x)
    b=JEUXp2(l)
    #-------------------
     
    def RESULTAT(a,b):
        if a==b:
            print("Personne ne gagne")
        elif a==1:
            if b==2:
                print(p2,"gagne",p1)
            elif b==3:
                print(p1,"gagne",p2)
        elif a==2:
            if b==1:
                print(p1,"gagne",p2)
            elif b==3:
                print(p2,"gagne",p1)
        elif a==3:
            if b==1:
                print(p2,"gagne",p1)
            elif b==2:
                print(p1,"gagne",p2)
     
    RESULTAT(a,b)
     
    input()
     
    #-------------------

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    7 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : février 2006
    Messages : 7 595
    Points : 21 641
    Points
    21 641
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par PierreLPP Voir le message
    Maintenant je n'est absolument pas compris le concept pour que sa se répète ?
    Punaise, Lycéen et incapable de savoir différencier "avoir" et "être" ; ni la différence entre le pronom possessif "sa" et le pronom démonstratif "ça" (cela). Cela est lamentable.

    Pour en revenir à Python, (ou tout autre langage de prog), pour répéter une action il faut encapsuler cette action dans une boucle.
    Si la boucle est avec un nombre prévisible d'itérations, alors on peut utiliser le for. Sinon on se rabat sur un while. Les tutoriels t'expliqueront comment on s'en sert.

    Citation Envoyé par PierreLPP Voir le message
    Les deux premières fonction ne servent a rien puisque je peut l'associer direct à la variable
    Je confirme. Il n'y a aucune différence entre JEUXp1() et JEUXp2() qui font exactement les mêmes actions l'une et l'autre. De plus aussi bien l'une que l'autre reçoivent un paramètre qui ne leur sert à rien.

    Enfin concernant l'évaluation du gagnant et du perdant, tu ne penses pas qu'il y a plus simple que tous ces tests imbuvables ? Les actions sont 1, 2 et 3. 1 gagne 2, 2 gagne 3 et 3 gagne 1 (ou alors c'est l'inverse, on s'en fout). Tu ne sens pas confusément comme une espèce de cercle lié où chaque item bat celui qui est devant lui mais est battu par celui qui est derrière ?

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    def RESULTAT(a,b):
    	if a==b:
    		print("Personne ne gagne")
    	elif a % 3 + 1 == b:
    		print(p2, "gagne", p1)
    	else:
    		print(p1, "gagne", p2)
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    octobre 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 17
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : octobre 2019
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Re, merci pour ton aide je vais me rencarder pour le "while" mais petite question, a quoi sert le signe bizarre et le == après le return ? je n'AI pas compris comment "main" fonctionne.

  6. #6
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    7 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : février 2006
    Messages : 7 595
    Points : 21 641
    Points
    21 641
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par PierreLPP Voir le message
    mais petite question, a quoi sert le signe bizarre et le == après le return ?
    Tu devrais vraiment vraiment lire un tutoriel. Le signe bizarre est le modulo (reste d'une division entière). Et pour le return j'ai corrigé mon code et supprimé cette fonction à la réflexion peu utile.
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    octobre 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 17
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : octobre 2019
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Je vien de cerner le modulo, mais je ne comprend vraiment pas comment avec une seul fonction tout marche ? Les variables a et b ne sont pas défini comment tu peux savoir si a==b ? Et je ne comprend toujours pas avec ton reste de div tu peux faire tous les cas..

  8. #8
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    7 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : février 2006
    Messages : 7 595
    Points : 21 641
    Points
    21 641
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par PierreLPP Voir le message
    avec une seul fonction tout marche ?
    C'est ta fonction !!! Je n'ai fait que changer son code..

    Citation Envoyé par PierreLPP Voir le message
    Les variables a et b ne sont pas définies
    Ben ce sont les paramètres de la fonction...

    Citation Envoyé par PierreLPP Voir le message
    comment tu peux savoir si a==b ?
    Je te rappelle que c'est ton code ça !!!

    Citation Envoyé par PierreLPP Voir le message
    Et je ne comprend toujours pas avec ton reste de div tu peux faire tous les cas..
    Citation Envoyé par Sve@r Voir le message
    Les actions sont 1, 2 et 3. 1 gagne 2, 2 gagne 3 et 3 gagne 1 (ou alors c'est l'inverse, on s'en fout). Tu ne sens pas confusément comme une espèce de cercle lié où chaque item bat celui qui est devant lui mais est battu par celui qui est derrière ?
    Tu devrais relire attentivement cette phrase.
    Ensuiite prends un papier et pose les 9 cas possibles (a=1, b=1; a=1, b=2; a=1, b=3; a=2, b=1; etc). Puis, pour chaque cas, déroule ta fonction originelle. Puis déroule ta fonction avec mon code...
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    octobre 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 17
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : octobre 2019
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    J'ai tout compris pour le modulo + ta méthode, et regarder un tuto "while". D'ailleurs le modulo je le copie/colle mais je ne sais pas le faire :/.Mais le while je n'arrive pas à le mettre en place j'ai essayer plusieurs combinaisons pourtant..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    #-------------------
    def RESULTAT(a,b):
        if a==b:
            print("Personne ne gagne")
        elif a%3+1==b:
            print(p1,"gagne",p2)
        else:
            print(p2,"gagne",p1)
     
    from random import *
     
    #-------------------
     
    def JEUX():
        while x<100:
            input("APPUYER SUR ENTRER")
            p1=input("Nom du joueur 1:")
            p2=input("Nom du joueur 2:")
            a=randint(1,3)
            b=randint(1,3)
            x=x+1
            a=RESULTAT(a,b)
            print(a)
     
    JEUX()
     
    #-------------------

  10. #10
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    7 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : février 2006
    Messages : 7 595
    Points : 21 641
    Points
    21 641
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par PierreLPP Voir le message
    D'ailleurs le modulo je le copie/colle mais je ne sais pas le faire :/
    Ouais, j'avais cru deviner que t'étais pas super vif...

    Citation Envoyé par PierreLPP Voir le message
    Mais le while je n'arrive pas à le mettre en place j'ai essayer plusieurs combinaisons pourtant..
    Et t'as essayé d'initialiser x ? Sais pas moi. Quand je vois le message "UnboundLocalError: local variable 'x' referenced before assignment" je sens confusément qu'il manque quelque chose à propos de "x"...
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    octobre 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 17
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : octobre 2019
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Mon code est opérationnel (enfin peut être existe t-il plus court ?), on demande deux joueur et on peut appuyer sur ENTRER pour relancer autant de fois que l'on souhaite, une solution pour pouvoir appuyer soit sur ENTRER et lancer soit sur F et quitter ? Je pense que c'est plus avancé mais sa m'intéresse !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    #-------------------
     
    def RESULTAT(a,b):
        if a==b:
            print("Personne ne gagne")
        elif a%3+1==b:
            print(joueur1,"gagne",joueur2)
        else:
            print(joueur2,"gagne",joueur1)
     
    from random import *
     
    x=0
    print("Pour JOUER entrer deux noms")
    joueur1=input('Nom du joueur 1:')
    joueur2=input('Nom du joueur 2:')
     
    #-------------------
     
    def JEUX(joueur1,joueur2):
        while x!=100:
            input("APPUYER SUR ENTRER pour jouer")
            a=randint(1,3)
            b=randint(1,3)
            RESULTAT(a,b)
     
    JEUX(joueur1,joueur2)
     
    #-------------------

  12. #12
    Membre averti
    Homme Profil pro
    BTS SNIR (système numérique option info & réseau)
    Inscrit en
    mai 2017
    Messages
    301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SNIR (système numérique option info & réseau)

    Informations forums :
    Inscription : mai 2017
    Messages : 301
    Points : 363
    Points
    363
    Par défaut
    Bonjour,

    il y a quelques petites choses à revoir, input("APPUYER SUR ENTRER pour jouer"), est-ce que vous pensez que ce que vous tapez va avoir la moindre influence sur le déroulement du programme ?
    est-ce vous pensez que votre boucle while est judicieuse ? votre condition de sortie est x!=100, sauf que vous ne touchez jamais à x.

    sinon quel est l’intérêt de faire un jeu auquel le joueur ne participe pas ? il ne devrait y avoir qu'une seule valeur aléatoire, c'elle de l'ordi (et encore vous demandez le nom des deux joueurs donc bon ...)
    actuellement votre jeu se résume à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    import random
    j1 = input("nom joueur 1")
    j2 = input("nom joueur 2")
     
    while True:
    	if random.randint(0, 2) == 0:
    		print("personne ne gagne")
    	elif random.randint(0, 2) == 1:
    		print(j1, "gagne", j2)
    	else:
    		print(j2, "gagne", j1)


    ps: ne faite plus jamais from random import *, vous perdez le le namespace random, et étant donné que ceux qui on écrient le module random semblent être des gens tout à fais logique ils utilisent des noms tout autant logique.
    Le problème étant que si vous vous dites un beau jour "tiens ! je vais nommé ma variable qui contient le choix de l'utilisation choice" et bien vous écrasez la fonction choice du module random (ceci dit si vous faites import random et que vous faites random = random.randint(5, 10) vous vous doutez bien du problème)

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    octobre 2019
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 17
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Enseignement

    Informations forums :
    Inscription : octobre 2019
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Je ne saisis pas vraiment, le fait que mon jeux ne fait pas participer le joueur, je pourrais lui demander si il veut jouer ou non et si il veut arrêter de jouer ou non, à pars sa et les noms des deux joueurs, qu’est que je peut demander de plus ? D’ailleurs l’abréviation sur le code (parce que chaque personne me donne une version différente) est judicieuse mais sa casse un peu plus le charme du pierre,feuille ou ciseau...

  14. #14
    Membre averti
    Homme Profil pro
    BTS SNIR (système numérique option info & réseau)
    Inscrit en
    mai 2017
    Messages
    301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SNIR (système numérique option info & réseau)

    Informations forums :
    Inscription : mai 2017
    Messages : 301
    Points : 363
    Points
    363
    Par défaut
    Citation Envoyé par PierreLPP Voir le message
    (parce que chaque personne me donne une version différente)
    bienvenue dans le monde du développement pour faire la même chose il y a une infinité de combinaisons différentes.
    mais sa casse un peu plus le charme du pierre,feuille ou ciseaux...
    en quoi c'est un pierre feuille ciseaux ? vous avez déjà vu quelqu'un joué à ça avec un dé ? genre 1-2 c'est pierre, 3-4 feuille et 5-6 c'est ciseaux ?

    si il veut arrêter de jouer ou non
    si il ? il faudrait sérieusement définir le nombre de joueur ... dans votre code vous demandez le nom de 2 joueurs mais l'ordi joue contre lui-même, et là vous parlez d'un joueur
    Sinon la condition de sortie de votre boucle while ? vous y avez réfléchie ?

    Un conseil, fermé votre IDE, prenez une feuille et faite quelques schémas du déroulement d'une partie

  15. #15
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    février 2006
    Messages
    7 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : février 2006
    Messages : 7 595
    Points : 21 641
    Points
    21 641
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par PierreLPP Voir le message
    ...mais sa casse un peu plus le charme du pierre,feuille ou ciseau...qu’est que je peut demander de plus
    Parce que ton truc a du charme ? L'ordi joue tout seul, nous on se contente d'appuyer sur <entree>. Et on ne sait même pas pourquoi l'un gagne plutôt que l'autre (on ne voit pas ce qu'ils jouent).
    A la limite tu aurais écrit ta fonction "RESULTAT" ainsi
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    def RESULTAT(a,b):
    	pions=("Pierre", "Ciseau", "Papier")
    	if a==b:
    		print("%s et %s ont joué %s, personne ne gagne" % (joueur1, joueur2, pions[a-1]))
    	elif a%3+1==b:
    		print("%s joue %s et %s joue %s - %s gagne" % (joueur1, pions[a-1], joueur2, pions[b-1], joueur1))
    	else:
    		print("%s joue %s et %s joue %s - %s gagne" % (joueur1, pions[a-1], joueur2, pions[b-1], joueur2))
    ça aurait eu déjà un peu plus d'allure. Bon ça cassait pas des briques non plus mais on aurait senti un "petit" quelque chose à en tirer. Parce que là, c'est zéro. J'ai lancé ton programme, appuyé 2 3 fois et tapé "CTRL-C" pour arrêter puis "rm" pour l'effacer quoi.

    Tu veux faire un shifoumi (c'est le vrai nom du jeu) un peu plus intelligent déjà va voir les règles du pierre papier ciseaux lézard spock et surtout fais participer l'utilisateur...

    Ou alors (autre possibilité) tu programmes différentes techniques de choix (choix aléatoire, choix en jouant la pièce qui bat celle jouée en dernier par l'adversaire (au cas où il joue 2 fois la même), choix en jouant la pièce battue par celle jouée en dernier par l'adversaire (au cas où justement il change exprès), choix en jouant la pièce qui bat celle jouée le plus souvent pas l'adversaire (s'il la joue souvent il y a des chances qu'il la rejoue souvent), choix en jouant la pièce qui bat celle jouée au moment le plus loin (si elle n'est pas sortie depuis longtemps alors elle risque de sortir bientôt) etc etc etc...)

    Ensuite tu fais une boucle de par exemple 100000 parties en automatique et tu regardes laquelle des techniques a l'avantage. Il y a eu ce sujet sur le forum l'an dernier et je me suis amusé à le faire. Ca c'est un vrai programme qui aura un peu plus de classe que de voir défiler "X gagne" puis "Y gagne" pendant qu'on reste plantés comme des rosiers à appuyer sur "entrée".

    Mais bon, pour y arriver il faudrait déjà que tu aies les bases des bases des bases d'une certaine intuitivité et d'un élémentaire bon sens. Quand je t'ai dit d'initialiser "X", je m'attendais à ce que tu le fasses juste avant le while, pas à l'autre bout du programme. De même quand on écrit while x < 100 ça veut dire qu'on sait déjà qu'il faudra faire évoluer "x". Un code ça se réfléchit un minimum (surtout quand on n'a pas l'habitude)...

    PS: tu remarqueras que pour ma modif, j'ai dû à chaque fois décrémenter l'indice pour afficher le pion joué (ex pions[a-1]). C'est dû au fait que les indices d'un tuple de 3 éléments vont de 0 à 2 tandis que tu fais choisir de 1 à 3 (encore un truc bien pensé !!!). Peut-être donc que ça t'incitera à rectifier tout ton code pour que les valeurs choisies soient entre 0 et 2 (ce qui éviterait de les décrémenter à chaque affichage) donc petit travail d'adaptation. Et bien entendu ça aura des répercussions sur la formule qui calcule le joueur gagnant...
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site

Discussions similaires

  1. Réponses: 19
    Dernier message: 21/02/2019, 13h21
  2. Pierre Feuille Ciseaux JS
    Par Uisge Beatha dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 24/08/2018, 15h30
  3. Championnat du monde de feuille caillou ciseau
    Par babastutz dans le forum La taverne du Club : Humour et divers
    Réponses: 7
    Dernier message: 18/12/2007, 11h53
  4. Pierre Feuille Ciseaux
    Par Wilvart dans le forum C++
    Réponses: 12
    Dernier message: 20/08/2006, 14h19
  5. [Conception] Concevoir le jeu Pierre Feuille Ciseau
    Par websurfeur dans le forum Général Java
    Réponses: 14
    Dernier message: 17/03/2006, 20h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo