Jeu de Siam en C

cs_croug Messages postés 2 Date d'inscription jeudi 27 octobre 2011 Statut Membre Dernière intervention 2 novembre 2011 - 27 oct. 2011 à 19:12
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 - 2 nov. 2011 à 10:11
Bonjour,
je dois programmer un jeu et je bloque sur un point.
Ce jeu se déroule sur un plateau et certains pions peuvent en pousser d'autres.
j'ai déjà programmé le déplacement simple de ces pions.
en français c'est clair :
lorsque le joueur tape des coordonnées qui sont celles d'un pion déjà à ces coordonnées sur le plateau, le pion doit prendre la place de ce dernier et selon la direction choisie pour ce pion, on doit effectuer une translation.

void PousserPerso(char *c1, int *f1, char tab1[5][5])

{
//f1 et c1 nouvelles coordonnées, animal déjà sur le plateau et c et f sont les coordonneés faichement saisies par l'utilisateur
char direction;

if ((c=c1)&&(f=f1))
{
//on remplace les coordonnées de l'animal poussée par celui qui pousse
printf("Votre animal a pousse un autre animal\n")
tab1[c][f]='E' //si c'était à l'éléphant de jouer
tab2[c][f]='R' //sinon ... (je pense qu'il faudra changer selon l'endroit où ce sera placé!)

switch(direction)
{
case'b': //descendre
*c1=*c1+1;
c=*c1+1;
break;



case'h': //monter
*c1=*c1-1;
c=*c1-1;
break;


case'g': //à gauche
*f1=*f1-1;
f=*f1-1;
break;

case'd'://à droite
*f1=*f1+1;
f=*f1+1;
break;

default: printf("Attention débordement !!");

}
}
}

mon problème c'est que je ne sais pas comment différencier les coordonnée de l'animal déjà sur le plateau et celles qui seront saisies par l'utilisateur (en sachant qu'elles doivent etre les même pour appliquer la pousser!)

merci,
en espérant que vous pourriez m'aider.


3 réponses

BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
28 oct. 2011 à 09:33
Hello,
Pourquoi ne pas stocker les positions de chaque animal dans une structure?
typedev struct {
 char type;
 int x;
 int y;
} animal;


Dans ce cas, la fonction PousserAnimal (que je préfères à PousserPerso pour des questions de logiques) prendrait en paramètre une structure et un déplacement, non? Après, à toi de vérifier si l'animal sort du plateau...

NB: j'ai renommé ton sujet. Dis-moi si cela ne te convient pas

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
cs_croug Messages postés 2 Date d'inscription jeudi 27 octobre 2011 Statut Membre Dernière intervention 2 novembre 2011
2 nov. 2011 à 00:12
merci de ta réponse Buno,
mais en fait cela revindrait à modifier tout le reste du code, qui lui fonctionne bien.
Est ce la seule solution??

Croug
0
BunoCS Messages postés 15472 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 25 mars 2024 103
2 nov. 2011 à 10:11
Hum...tu es contre le changement, hein...
Bon, je comprends bien ton souci mais poses-toi quand même la question de voir s'il ne serait pas plus opportun de modifier ta gestion de données.
Pour en revenir à ta question,
mon problème c'est que je ne sais pas comment différencier les coordonnée de l'animal déjà sur le plateau et celles qui seront saisies par l'utilisateur

Tu as forcément dû stocker les positions de tes animaux, non? Si oui, tu peux aisémeent faire la différence. Sinon, ben...je te conseille de revoir ta gestion de données.

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
Rejoignez-nous