Communauté non-officielle autour du langage Python


    Script Blackjack

    Partagez
    avatar
    Valou
    Bogoss du Blitzcrank

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

    Script Blackjack

    Message par Valou le 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 :

    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
    avatar
    Jule04
    Pyministrateur

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

    Re: Script Blackjack

    Message par Jule04 le 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 : http://python-fr.1fr1.net/t15-les-calculs-mathematiques . Ça peut être très utile Smile


    _____________________________________________

    .Merci de respecter les quelques règles de comportement du forum.
    .Nous ne fournissons pas de support par messagerie privée.
    .Administrateur/Fondateur.
    http://areaonlan.eu
    avatar
    Valou
    Bogoss du Blitzcrank

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

    Re: Script Blackjack

    Message par Valou le 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
    avatar
    Jule04
    Pyministrateur

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

    Re: Script Blackjack

    Message par Jule04 le 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.


    _____________________________________________

    .Merci de respecter les quelques règles de comportement du forum.
    .Nous ne fournissons pas de support par messagerie privée.
    .Administrateur/Fondateur.
    http://areaonlan.eu
    avatar
    smile45
    PyModérateur

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

    Re: Script Blackjack

    Message par smile45 le 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?


    _____________________________________________

    .Merci de respecter les quelques règles de comportement du forum.
    .Nous ne fournissons pas de support par messagerie privée.
    Modérateur/Aide
    avatar
    Valou
    Bogoss du Blitzcrank

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

    Re: Script Blackjack

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

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

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

    Re: Script Blackjack

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

    Merci Very Happy


    _____________________________________________

    .Merci de respecter les quelques règles de comportement du forum.
    .Nous ne fournissons pas de support par messagerie privée.
    Modérateur/Aide

    Contenu sponsorisé

    Re: Script Blackjack

    Message par Contenu sponsorisé


      La date/heure actuelle est Sam 24 Juin - 7:04