bonjour a tous,

voila je débute en C et pour tester tout ce que j'ai déja vu, je me suis amusé à adapter un petit jeu de blackjack que j'avais créé il y a 15 ans sur ma vielle calculatrice casio au lycée.

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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int tirageBanque()
{
    int nbAlea=0;
    srand(time(NULL));
    while (nbAlea <= 16)
    {
 
        nbAlea = rand() % 21;
 
    }
    printf("\nla banque a: %d\n\n", nbAlea);
 
    return nbAlea;
 
}
 
int tirageJoueur()
{
 
    int nbAlea=0;
    char reponse=' ';
    int score = 0;
    int valeurAs =0;
    int inter = 0;
    srand(time(NULL));
 
 
    while ((reponse !='n') && (score < 22))
    {
 
        nbAlea= rand()%11;
 
        if (nbAlea == 0)
        {
            while (nbAlea ==0)
            {
                /* tirage carte*/
                nbAlea = rand() % 11;
            }
 
        }
        printf("\n\nVous avez tire un %d\n\n", nbAlea);
 
        if (nbAlea == 1) /*tirage dun as */
        {
            printf("vous avez tire un As, voulez vous lui donner la valeur 1 ou 11 ?\n");
            scanf("%d", &valeurAs);
            nbAlea = valeurAs;
            if ((valeurAs != 1) && (valeurAs != 11))
            {
                while ((valeurAs != 1) && (valeurAs != 11))
                {
 
 
                    printf("on a dit entre 1 et 11 !!! recommencez !\n");
                    scanf("%d", &valeurAs);
                    nbAlea = valeurAs;
                }
            }
 
        }
        /* calcul du score et demande de tirage ou pas */
 
        inter = score + nbAlea;
        score = inter;
        printf("\nVous avez un total de: %d\n\n", score);
 
        if (score > 21)
        {
            printf("\nBUSTED !!!\n");
            break;
        }
 
        if (score == 21)
            break;
 
        printf("Voulez vous tirer une autre carte ? (o/n)\n");
        scanf("%s", &reponse);
 
    }
    return score;
 
}
 
int main ()
{
    int scoreJoueur =0;
    int scoreBanque =0;
    int pot = 100;
    int mise = 0;
 
    printf("-= BLACKJACK =-\n\n");
 
 
 
    while (pot>0)
    {
 
 
        printf("\nVous avez %d dans le pot\n", pot);
 
        /* mise*/
        printf("\ncombien voulez vous miser ?\n");
        scanf("%d", &mise);
 
        while (mise>pot)
        {
            printf("\nVous ne pouvez pas miser plus que ce que vous avez dans votre pot !!! \n\nCombien voulez vous miser ?\n");
            scanf("%d", &mise);
        }
 
        /* tirage joueur*/
        scoreJoueur = tirageJoueur();
 
 
 
 
        /*tirage banque*/
        if (scoreJoueur<21)
            scoreBanque=tirageBanque();
 
        if ((scoreJoueur == 21) && (scoreJoueur > scoreBanque))
        {
            printf("\nBLACKJACK !!! Vous remportez deux fois votre mise !!!\n");
            pot = (pot+(mise*2));
 
        }
        else if ((scoreJoueur < scoreBanque) || (scoreJoueur > 21))
        {
            printf("\nLa banque remporte la main, vous perdez votre mise\n");
            pot = (pot-mise);
        }
 
        else if (scoreJoueur > scoreBanque)
        {
            printf("\nBravo !!! Vous remportez une fois votre mise !\n");
            pot = (pot+mise);
        }
 
        else
            printf("\nEgalite ! vous recuperez votre mise\n");
    }
 
    printf("\nVous etes ruine !!!\n\nGAME OVER !!!\n\n");
 
    return 0;
}
voila mon probleme:

dans la fonction tirageJoueur() l'incrementation de la variable score merde si bien que je suis obligé de passer par une variable intermediaire pour faire en deux lignes ce que je pourrais faire en une...

si je met score += nbAlea (ou meme score = (score+nbAlea) a chaque tirage de carte la valeur de score sera celle de nbAlea (comme si j'avais fait un score=nbAlea)

une petite idée d'où viendrait le soucis ?

merci d'avance