IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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 :

Le compte est bon, jeux


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2015
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Le compte est bon, jeux
    Bonjour à tous et à toutes, avant tout, je suis nul.

    Voila je suis ici car je doit réalisé le programme "Le compte est bon" ou l'utilisateur est le joueur principal.
    Mon soucis est que je suis bloqué a l'étape du calcul, je n'ai maintenant aucun idée comment utilisé mes trois variables que j'ai déterminé afin d’exécuter le calcul: x z x

    voici mon programme
    Nom : Sans titre 1.jpg
Affichages : 3269
Taille : 177,6 Ko

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Je ne connais pas bien le sujet, mais il est intéressant: voilà 2 pistes:

    - un code Python sur ce site: http://python.developpez.com/sources...uiguiBonCompte

    - par pure curiosité, je viens de faire une traduction "brute de décoffrage" en Python du code pascal d'ici: http://www.chambily.com/recursivite/chap_IV_7.htm. Ce lien est intéressant parce qu'il décrit l'algorithme utilisé. Voilà le code Python:

    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    #!/usr/bin/python3
    # -*- coding: utf-8 -*-
    # Python 3
     
    """
    conversion en Python du programme Pascal de:
    http://www.chambily.com/recursivite/chap_IV_7.htm
    """
     
    import random
    random.seed()
     
    def operations(t, max):
     
        signe = '+-*/'
     
        for i in range(0, 4):
            for j1 in range(1, max):
                for j2 in range(j1 + 1, max + 1):
                    if i == 0:
                        a = t[j1] + t[j2]
                    elif i == 1:
                        a = t[j1] - t[j2]
                    elif i == 2:
                        a = t[j1] * t[j2]
                    elif i == 3:
                        a = t[j1] // t[j2]
                        if t[j2] * a != t[j1]:
                            a = 0
     
                    if a > 0:
                        if a == t[0]:
                            print("%s%s%s=%s" % (t[j1], signe[i], t[j2], a))
                            trouve = True
                            return trouve
     
                        t1 = t[:]
     
                        t1[j1] = a
                        t1[j2] = 0
                        while True:
                            echange = False
                            for ii in range(1, max):
                                if t1[ii] < t1[ii + 1]:
                                    aa = t1[ii]
                                    t1[ii] = t1[ii + 1]
                                    t1[ii + 1] = aa
                                    echange = True
                            if not echange:
                                break
                        trouve = operations(t1, max - 1)
                        if trouve:
                            print("%s%s%s=%s" % (t[j1], signe[i], t[j2], a))
                            return trouve
     
    nb_a_trouver = random.randint(101, 999)
    print("Nombre à trouver: ", nb_a_trouver)
     
    ressources = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 25, 50, 75, 100]
    nbs_dispo = [random.choice(ressources) for i in range(0, 6)]
    nbs_dispo.sort(reverse=True)
    print("Nombres disponibles", nbs_dispo)
    print()
     
    nombres = [nb_a_trouver] + nbs_dispo
     
    trouve = operations(nombres, 6)
     
    if not trouve:
        print("pas de solution")
    Exemples d'utilisation:

    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
    Nombre à trouver:  719
    Nombres disponibles [25, 25, 9, 8, 5, 1]
     
    720-1=719
    3600/5=720
    450*8=3600
    50*9=450
    25+25=50
     
    Nombre à trouver:  502
    Nombres disponibles [100, 9, 7, 5, 2, 1]
     
    510-8=502
    102*5=510
    7+1=8
    100+2=102
     
    Nombre à trouver:  116
    Nombres disponibles [100, 50, 9, 8, 8, 4]
     
    150-34=116
    136/4=34
    17*8=136
    9+8=17
    100+50=150
     
    Nombre à trouver:  620
    Nombres disponibles [100, 75, 7, 7, 7, 1]
     
    pas de solution
    Le temps de calcul est très variable, entre réponse quasi immédiate et quelques secondes.

    Dans certains cas, le programme s'arrête et affiche "pas de solution", mais c'est dommage qu'il n'affiche pas la solution la plus proche.

    En fait, le plus intéressant est de bien comprendre l'algorithme utilisé pour faire encore mieux!
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

Discussions similaires

  1. Jeu "Le compte est bon" avec récursivité
    Par elvis54 dans le forum Général Java
    Réponses: 1
    Dernier message: 19/11/2008, 07h50
  2. [Jeu "Le Compte est Bon"] Recherche algorithme
    Par Chriss21 dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 29/10/2005, 16h10

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