Cybersnap
Messages postés19Date d'inscriptionjeudi 14 décembre 2006StatutMembreDernière intervention17 août 2007
-
29 avril 2007 à 17:31
Cybersnap
Messages postés19Date d'inscriptionjeudi 14 décembre 2006StatutMembreDernière intervention17 août 2007
-
2 mai 2007 à 08:52
Bonjour à tous, je réalise un programme de poker pour la fin de l'année mais je cale sur un point ou je dois verifier si les joueurs on une paire.
voici le code :
int z = 1;
while
(z == 5) {
if ((C1J1 % 13 1) & (CzJ3 % 13 1)){
this.mainj1.Text "Vous avez une paire d'as";winJ1 13;
}
j'aimerais avoir C1J3 puis C2J3 jusque C5J3
il me met une erreur, je ne vois pas comment faire. Pourriez vous m'aider svp.
SharpMao
Messages postés1024Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention 7 juin 201069 2 mai 2007 à 08:29
Hello,
Quelques détails :
Comme je te l'ai dis dans mon premier message, while (z == 5) signifie tant que z est égal à 5.
Il est donc normal que tu ne trouve rien, puisqu'il sort de la boucle directement.
Ensuite, les tablaux commencent à l'index 0, et non 1, donc en principe, tu as
CJ1[0] CJ1[1]
CJ2[0] CJ2[1]
CJ3[0] CJ3[1] CJ3[2] CJ3[3] CJ3[4]
Donc si tu tiens vraiment à faire une boucle while, tu met comme condition while (z<5).
Mais une solution plus élégante consiste à utiliser une boucle for :
for (int i =0;i<CJ3.length;i++)
{
//intérieur de ta boucle.
}
Ensuite, vérifier chaque hauteur, ce n'est vraiment pas une manière de programmer.
Fais trois méthodes :
private string GetName(int card)
{
switch (card%13)
{
case 1:
return "d'as";
case 2:
return "de deux";
case 3:
return "de trois";
case 4:
return "de quatre";
case 5:
return "de cinq";
case 6:
return "de six";
case 7:
return "de sept";
case 8:
return "de huit";
case 9:
return "de neuf";
case 10:
return "de dix";
case 11:
return "de valet";
case 12:
return "de dame";
case 0:
return "de roi";
}
return "";
}
et
private int GetScore(int card){
switch (card % 13)
{
case 1:
return 13;
case 0:
return 12;
default:
return (card % 13) - 1;
}
}
Et enfin
public void CheckPairs(int card)
{
for (int i =0;i<CJ3.length;i++)
{
if (card%13 == CJ3%13)
{
this.mainj1.Text = "Vous avez une paire "+GetName(card);
winJ1 = GetScore(card);
}
}
}
De cette manière, tu peux appeler cette méthode avec la carte CJ1[0], mais aussi avec les cartes CJ1[1], CJ2[0], et CJ2[1].
Ne te vexes pas, mais j'ai l'impression que tu n'as pas beaucoup d'expérience en programmation.
N'hésite pas à aller un peu sur internet non seulement pour poser des question, mais aussi pour trouver des tutoriels, qui pourront beaucoup t'apprendre.
SharpMao
Messages postés1024Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention 7 juin 201069 30 avril 2007 à 08:15
Hello,
alors plusieurs choses
tu notes while (z==5)
ce qui veut dire tant que z est égal à 5, comme z est initialisé à 1 juste avant, il ne fait rien.
Ensuite, tu ne peux pas boucler sur des variables, amsi sur des tableaux, ou des listes
int[] CJ1 = new int[5]//Cartes du joueur 1
(Pour la suite, j'admet que ce tableau est rempli avec les cartes du joueru 1)
à ce moment, tu doit faire deux boucles, pour controler les cartes
for(int i = 0;i<CJ1.length-1;i++)
{
for(int j = i+1;j<CJ1.length;j++)
{
if(CJ1[i]%13 == CJ1[j]%13)
this.mainj1.Text = "Vous avez une paire"
}
}
Avec ces deux boucles, tu controles la 1ère carte avec les 4 autres, la deuxième avec les trois suivantes,...
Une dernière chose, comme tu as pu le constater, j'ai enlevé la référence à la paire d'as.
Tu peux comparer de manière générale, et en resortir la valeur.
Attention tout de même, avec ce système, si tu as un brelan, il te marquera trois paires !
Cybersnap
Messages postés19Date d'inscriptionjeudi 14 décembre 2006StatutMembreDernière intervention17 août 2007 30 avril 2007 à 11:06
Merci bcp pour la réponse mais ce qu'il y a c'est que avant je donnais des points quand s'était une paire d'as ou une paire de deux comme ca, je sais qui à la plus haute main :s
J'aurais pas du choisir ce jeux lol
je m'embrouille avec mes conditions pour savoir qui a quoi comme carte :(
SharpMao
Messages postés1024Date d'inscriptionmardi 4 février 2003StatutMembreDernière intervention 7 juin 201069 30 avril 2007 à 12:15
Hello,
Encore une autre méthode :
int[]
CardsOfPlayer1 =
new
int[13];
for (
int
i = 0;
i <
CJ1.
Length - 1;
i++)
{
CardsOfPlayer1[
CJ1[
i] % 13]++;
}
//vérifie les paires, brelan, carrés,...
for (
int
i=0;
i<13;
i++)
{
switch (
CardsOfPlayer1[
i])
{
case 2:
//Ici, tu connais La hauteur decimal la carte, par la variable i.
//Il faut juste faire attention, si i=0, Ca signifie roi (si le roi = 13, 13 % 13 = 0)
this.mainj1.Text =
Vous avez une paire";
break;
case 3:
this.mainj1.Text =
Vous avez un brelan";
break;
case 4:
this.mainj1.Text =
Vous avez un carré";
break;
}
}
Amicalement, SharpMao
Vous n’avez pas trouvé la réponse que vous recherchez ?
donc dans mon jeux j'ai deux joueurs qui ont 2 cartes chacun au début CJ1 CJ2.
puis les 5 cartes sur la table que les joueurs peuvent utiliser CJ3
ici j'aimerais verifier les paires en faisant un test sur la CJ1[1] et les cartes CJ3[1,2,3,4,5]
voici mon code :
// boucle pour verifier si les joueurs ont une paire avec leur jeux et le jeux du j3
while (z == 5) {
if ((CJ1[1] % 13 == 1) & (CJ3[z] % 13 == 1)){
this.mainj1.Text "Vous avez une paire d'as"; // simple indication au joueurswinJ1 13; // ici j'atribue des points aux diff mains la paire d'as bat la paire de deux etc
}
else{
if ((CJ1[1] % 13 == 2) & (CJ3[z] % 13 == 2)){
this.mainj1.Text "Vous avez une paire de deux";winJ1 1;
}
else{
if ((CJ1[1] % 13 == 3) & (CJ3[z] % 13 == 3)){
this.mainj1.Text "Vous avez une paire de trois";winJ1 2;
}
else{
if ((CJ1[1] % 13 == 4) & (CJ3[z] % 13 == 4)){
this.mainj1.Text "Vous avez une paire de quatre";winJ1 3;
}
else{
if ((CJ1[1] % 13 == 5) & (CJ3[z] % 13 == 5)){
this.mainj1.Text "Vous avez une paire de cinq";winJ1 4;
}
else{
if ((CJ1[1] % 13 == 6) & (CJ3[z] % 13 == 6)){
this.mainj1.Text "Vous avez une paire de six";winJ1 5;
}
else{
if ((CJ1[1] % 13 == 7) & (CJ3[z] % 13 == 7)){
this.mainj1.Text "Vous avez une paire de sept";winJ1 6;
}
else{
if ((CJ1[1] % 13 == 8) & (CJ3[z] % 13 == 8)){
this.mainj1.Text "Vous avez une paire de huit";winJ1 7;
}
else{
if ((CJ1[1] % 13 == 9) & (CJ3[z] % 13 == 9)){
this.mainj1.Text "Vous avez une paire de neuf";winJ1 8;
}
else{
if ((CJ1[1] % 13 == 10) & (CJ3[z] % 13 == 10)){
this.mainj1.Text "Vous avez une paire de dix";winJ1 9;
}
else{
if ((CJ1[1] % 13 == 11) & (CJ3[z] % 13 == 11)){
this.mainj1.Text "Vous avez une paire de vallet";winJ1 10;
}
else{
if ((CJ1[1] % 13 == 12) & (CJ3[z] % 13 == 12)){
this.mainj1.Text "Vous avez une paire de Dame";winJ1 11;
}
else{
if ((CJ1[1] % 13 == 0) & (CJ3[z] % 13 == 0)){
this.mainj1.Text "Vous avez une paire de roi";winJ1 12;