JEU DE CARTE

un_mec_de_stras Messages postés 26 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 21 février 2006 - 15 févr. 2006 à 20:58
un_mec_de_stras Messages postés 26 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 21 février 2006 - 21 févr. 2006 à 20:12
salut a tous
je veut créer un jeu de carte (bataille) et dans mon code il ya une partie (qui va comptabilisé les point de chaque joueur ne marche pas)

int Som1 = 0;
int Som2 = 0;
for (int i=0; i<26; i++){
if (tCarteJoueur1[i].valeur() > tCarteJoueur2[i].valeur())
Som1 = Som1 + val;
Som2 = Som2 + 0;
else if (tCarteJoueur1[i].valeur() < tCarteJoueur2[i].valeur())
Som1 = Som1 + 0;
Som2 = Som2 + val;
else Som1 = Som1+ 0;
Som2=Som2+0;

deja de une les ELSE ne marche pas (c'est a dire que le jeu ne se lance pa a cause de cela) et la seconde chose c'est que mon VALEUR ne fonctionne pa

voici ma classe carte

public class Carte {
int code;
String lib;

public Carte (int wCode, String wLib){
code = wCode;
lib = wLib;
}

public void AfficherCarte(){
System.out.println(code + " "+ lib);
}

public void valeur(int val){
code = val;
if (code==1)
val =10;
else if (code==13)
val = 8;
else if (code==12)
val = 6;
else if (code==11)
val = 4;
else val=1;
}
}

si QQUN PEU M AIDER MERCI BCP

un mec de stras

8 réponses

eddyger Messages postés 20 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 13 décembre 2010
15 févr. 2006 à 21:51
Bonsoir,
qques remarques :
1) "void" devant une méthode signifie qu'elle ne retourne rien.
2) si tu as plusieurs instruction dans un for, un if , un else,...... n'oublie pas les paires accolade ouvrante/fermante
3) dans certains cas un switch est plus lisible que plusieurs if imbriqués ou successifs.

A)la classe "corrigée" :
public class Carte {
int code;
String lib;

public Carte (int wCode, String wLib){
code = wCode;
lib = wLib;
}

public void AfficherCarte(){
System.out.println(code + " "+ lib);
}

public int valeur(){
switch (code){
case 1 : return 10 ;
case 13 : return 8;
case 12 : return 6;
case 11 : return 4;
default : return 1;
}
}
}

B) ta boucle "corrigée":
int Som1 = 0;
int Som2 = 0;
for (int i=0; i<26; i++){
if (tCarteJoueur1[i].valeur() > tCarteJoueur2[i].valeur()){
Som1 = Som1 + val; // qui est val : tCarteJoueur1[i].valeur() OU tCarteJoueur2[i].valeur() ?
<strike>Som2 = Som2 + 0;</strike> //1+0= 1 , n+0=n non ?
}
else
if (tCarteJoueur1[i].valeur() < tCarteJoueur2[i].valeur())
<strike> Som1 = Som1 + 0;</strike>
Som2 = Som2 + val; // qui est val : tCarteJoueur1[i].valeur() OU tCarteJoueur2[i].valeur() OU ...?
<strike>else Som1 = Som1+ 0;
Som2=Som2+0;</strike>
}
ed
0
Rejoignez-nous