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

avec Java Discussion :

Jeu blackjack : règle de l'As


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2015
    Messages : 30
    Points : 17
    Points
    17
    Par défaut Jeu blackjack : règle de l'As
    je fais un projet sur un jeu de blackjack ! mais j'ai de la difficulté avec la règle de l'as.
    j'ai réussi a trouver un code mais il utilise un booléen .
    est ce que quelqu'un connait une autre façon d'écrire ce code en utilisant des if?
    je doit traduire a la fin mon code en assembleur donc je peux pas utiliser de booléen.merci
    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
    public int getBlackjackValue() {
     
     
             int val;      // valeur de la main.
             boolean ace;  // ceci est vrai si la main contient un as
     
             int cards;    //nombre de carte dans la main
     
             val = 0;
             ace = false;
             cards = getCardCount();
     
             for ( int i = 0;  i < cards;  i++ ) {
     
                 Card card;    // le i-th card; 
                 int cardVal;  // la valeur du blackjack
                 card = getCard(i);
                 cardVal = card.getValue();  // valeur normal,1 a 13.
                 if (cardVal > 10) {
                     cardVal = 10;   // pour un Jack, Queen, ou King.
                 }
                 if (cardVal == 1) {
                     ace = true;     //il ya au moins un as
                 }
                 val = val + cardVal;
              }
     
                 Maintenant, val est la valeur de la main, en comptant tous les As comme 1.
     
                 // s'il ya un as et changeant la valeur de 1 a 
                 // 11 laisserait le score inférieur ou égal a 1
                 // puis le faire en ajoutant les 10 points supplémentaires à val
     
     
              if ( ace == true  &&  val + 10 <= 21 )
                  val = val + 10;
     
              return val;
     
         }  // fin getBlackjackValue()
    regle de l'as

    L'as (1) vaut, en fonction du joueur, 1 ou 11. Le choix n'est pas fait au moment la saisie.

    Lorsque la valeur minimale possible de la main dépasse 21, le joueur perd le tour.

    Lorsque le joueur décide de rester, la valeur finale de la main est la plus grande possible qui ne dépasse pas 21.

    règle du blackjack

    Si les deux premières cartes totalisent 21 (nécessairement un as et une bûche), le tour est gagné instantanément et le programme affiche «21 Black Jack» (le joueur n'a pas besoin d'entrer 0 pour rester).

    En mode d’entraînement, le programme retourne à la sélection du mode de jeu.

    Si le score atteint 21 avec trois cartes ou plus, ce n'est pas un Black Jack.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Le type boolean c'est juste un type avec 2 valeurs. Si tu le remplaces par un int qui vaut 0 ou 1, et que tu remplaces if ( bool ) par if (bool==1) tu fais la même chose, sans booléen.

    Pour ton algo, le booléen sert à ajouter 10 si le total obtenu reste inférieur ou égal à 21.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ( ace == true  &&  val + 10 <= 21 ) {
                  val = val + 10;
    }
    Si tu remplaces le booléen par un int, tu peux même faire que cet int valle 0 ou 10 :
    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
     
    ace = 0;
    /*...*/ 
             for ( int i = 0;  i < cards;  i++ ) {
    /*...*/ 
     
                 if (cardVal == 1) {
                     ace = 10;     //il ya au moins un as
                 }
    /*...*/ 
              }
     
    /*...*/ 
     
    if ( val + ace <= 21 ) {
         val = val + ace;
    }
    Le test à la fin pourrait s'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    int temp = val + ace;
    if ( temp <= 21 ) {
         val = temp;
    }
    Ce qui devrait être assez simple à convertir en assembleur. Je pense que cette cette méthode prend moins de cycles (si ça une importance pour l'exercice) qu'un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ( ace==1/*test si ace est vrai*/ && val+10<=21 ) {
        val=val+10;
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2015
    Messages : 30
    Points : 17
    Points
    17
    Par défaut
    ok merci!

Discussions similaires

  1. Problème Jeu BlackJack Netbeans
    Par BlackJackH dans le forum NetBeans
    Réponses: 1
    Dernier message: 10/12/2014, 08h46
  2. jeu de blackjack
    Par scoubida42 dans le forum Débuter avec Java
    Réponses: 10
    Dernier message: 02/11/2009, 22h56
  3. Vends livres de régle de Jeu de Rôle
    Par f-k-z dans le forum Petites annonces
    Réponses: 0
    Dernier message: 02/07/2009, 22h14
  4. [Jeu de dames]Enregistrer les règles...
    Par progfou dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 16/11/2005, 19h39

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