Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Communauté non-officielle autour du langage Python

-28%
Le deal à ne pas rater :
Brandt LVE127J – Lave-vaisselle encastrable 12 couverts – L60cm
279.99 € 390.99 €
Voir le deal

3 participants

    Script Blackjack

    Valou
    Valou
    Bogoss du Blitzcrank


    Messages : 29
    Date d'inscription : 30/01/2013
    Age : 29
    Localisation : France

    Script Blackjack Empty Script Blackjack

    Message par Valou Mer 13 Fév - 20:17

    Bonjour ou bonsoir Smile,

    Je rencontre un problème pour la programmation d'un jeu sous langage python. Le jeu est un jeu de blackjack, ou s'en approchant, et consiste à ne pas dépasser une limite, fixée à 21. On tire une carte jusqu'à tant qu'on veuille arrêter. Le but est de se rapprocher le plus de la limite, voire de l'égaler. Le jeu se déroule de base avec un joueur et une banque (joueur vs bank); on peut également jouer à plusieurs face à la banque (cependant chacun garde son propre jeu et les gains sont individuels). Donc je vous ai indiqué les règles du jeu pour que vous soyez au courant de quoi je parle Very Happy
    Donc voici le script que j'ai commencé à développer :

    Code:
    import os
    from random import randrange

    # Declaration des variables de depart
    valeur_depart = 0 # On debute avec un score de zero
    continuer_partie = True
    argent = 1000

    print("Vous vous installez confortablement a la table de blackjack")
    mise = raw_input("Quelle est votre mise ?")
    while continuer_partie: # Tant qu'on doit continuer la partie
        # On demande a l'utilisateur s'il desire prendre une carte
        tirage = randrange(13)
        carte = raw_input("Voulez-vous prendre une carte (oui/non) ?")
        if carte=="o" or carte=="O":
          valeur_depart += tirage                <--- Erreur ici apparemment
          print(valeur_depart)
          if valeur_depart>=18 and valeur_depart< 21:
             print("Vous avez depasse 18 sans depasse 21, vous avez gagne")
             argent += mise%2
          elif valeur_depart==21:
             print("BLACKJACK !!!")
             argent += mise*2
             continuer_partie = False
             break
          elif valeur_depart > 21:
             print("Vous avez depasse 21, vous avez perdu")
             argent -= mise
             continuer_partie = False
       
    print("Fin de partie")       
    # On met en pause le systeme
    os.system("pause")

    Comme indiqué dans le script, je rencontre une erreur ligne 16 indiquée par le "Erreur ici apparemment".
    Et voici ce que la console m'envoie comme message d'erreur, cela vous aidera sans doute :
    Script Blackjack Erreur10

    J'aimerais savoir d'où vient l'erreur, si vous savez, bien évidemment.
    Merci pour l'aide que vous pouvez m'apporter.


    Dernière édition par Valou le Jeu 14 Fév - 18:53, édité 1 fois
    Jule04
    Jule04
    Pyministrateur


    Messages : 98
    Date d'inscription : 15/01/2013
    Age : 28
    Localisation : Orléans

    Script Blackjack Empty Re: Script Blackjack

    Message par Jule04 Mer 13 Fév - 20:44

    Bonsoir,

    Tu m'as expliqué ton problème en dehors, mais essai de développer un peu par la suite Smile

    En tout cas, chez moi. Ton script fonctionne bien.

    Par contre, deux-trois petites choses :

    Tu utilises un modulo de 2 à la ligne 20(reste d'une division par deux donc), or je pense que tu voulais diviser car à partir d'un certains moment, python te renverra forcement une erreur. Si c'est le cas, il faut faire comme ceci :
    Code:
    nombre= premier/deuxieme
    Cette opération te renverra un réel. Si toutefois tu préfères un entier (au blackjack j'imagine que c'est mieux), il faut simplement doubler le slash :
    Code:
    nombre=premier//deuxieme
    Essaye avec ce code par exemple pour voir l'idée de la chose dans un nouveau script appart :
    Code:
    un=input("Entre le premier nombre > ")#On rentre la valeur du premier nombre
    deux=input("Entre le second nombre > ")#valeur du second nombre
    un=int(un)#On le transforme en integer
    deux=int(deux)#IDEM qu'au dessus
    nombre=un/deux#On les divises avec un seul slash
    nombred=un//deux#On les divises avec deux slashs
    print(nombre," réel")#On affiche la première opération
    print(nombred," entier")#On affiche la seconde opération

    La seconde chose c'est ça :
    Code:
    os.system("pause")
    Certains diront que c'est horrible, personnellement je l'aime bien, mais on préférera un input comme ça :
    Code:
    pause=input("Appuyer sur une touche pour fermer")
    Il me semble que ce n'est pas portable dans le premier cas et c'est du coup pour ça qu'il faut utiliser le "input". Je vérifierai mes sources Razz

    Une dernière chose dont je suis pas sûr à 100% :
    Il me semble que "mise" est définie au début par un "input", cela va donc te renvoyer une chaîne de caractères (str <=> string). Il faut donc que tu la transforme en integer (int <=> nombre)pour pouvoir effectuer des opérations dessus. Cette "transformation" est simple :
    Code:
    mise = input("Entrer la mise de votre choix")
    mise = int(mise)
    Mise va dans le cas du dessus, devenir un integer, donc considérer comme et exclusivement comme un nombre par Python.

    J'espère t'aider.
    Jule

    PS : Pour tout ce qui est calculs etc.. Je te renvoie ici : https://python-fr.1fr1.net/t15-les-calculs-mathematiques . Ça peut être très utile Smile
    Valou
    Valou
    Bogoss du Blitzcrank


    Messages : 29
    Date d'inscription : 30/01/2013
    Age : 29
    Localisation : France

    Script Blackjack Empty Re: Script Blackjack

    Message par Valou Jeu 14 Fév - 19:05

    Merci de ton aide. Very Happy

    J'ai modifié mon post de départ afin que tu puisses voir l'intégralité de mon problème. J'ai également pris en compte tes remarques pour le script Wink
    Jule04
    Jule04
    Pyministrateur


    Messages : 98
    Date d'inscription : 15/01/2013
    Age : 28
    Localisation : Orléans

    Script Blackjack Empty Re: Script Blackjack

    Message par Jule04 Ven 15 Fév - 14:43

    Comme on a pû le voir, c’est dû au fait que tu avais 4 espaces au lieu d'une tabulation sur une ligne entre 1 et 16.
    Les conventions veulent que tu mettes 4 espaces au lieu d'une tabulation, pour les copier/coller, c'est mieux par exemple.
    smile45
    smile45
    PyModérateur


    Messages : 27
    Date d'inscription : 22/01/2013

    Script Blackjack Empty Re: Script Blackjack

    Message par smile45 Ven 15 Fév - 18:10

    Problème résolu cette aprem' Smile Tu pourras mettre un lien ou poster le script quand il sera terminé s'il te plait?
    Valou
    Valou
    Bogoss du Blitzcrank


    Messages : 29
    Date d'inscription : 30/01/2013
    Age : 29
    Localisation : France

    Script Blackjack Empty Re: Script Blackjack

    Message par Valou Sam 16 Fév - 23:38

    Oui, dès que le script sera terminé, je le posterai. Wink
    smile45
    smile45
    PyModérateur


    Messages : 27
    Date d'inscription : 22/01/2013

    Script Blackjack Empty Re: Script Blackjack

    Message par smile45 Dim 17 Fév - 11:01

    Merci Very Happy

    Contenu sponsorisé


    Script Blackjack Empty Re: Script Blackjack

    Message par Contenu sponsorisé

      Sujets similaires

      -

      La date/heure actuelle est Ven 26 Avr - 17:49