Salut quelqu'un pourrait-il m'aider. je suis en train de faire un jeu de dame en C et j'aimerais reupérer et afficher la liste des coups possibles pour un joueur donné, j'utilise une matrice (10*10) pour représenter le damier. j'ai une fonction recursive qui verifie si une prise est possible auquel cas el se rapel ainsi de suite mais elle ne sors jamais de la boucle(recursive).
Tu dois avoir une erreur de logique dans ta condition, Coup possible. Revérifie ton algo. Tu peux toujours aussi nous la copier collé.
__________________________
Celui qui tue un homme est un meurtrier,
Celui qui tue un peuple est un tyran,
Celui qui tue des millions de gens est un dieu.
(Désolé pour les fautes d'orthographe que j'ai commises, et celles que je vais faire!)
ca dépend avec quoi tu rappels ta fonction récursive.
Montre nous avec un bout de code ou se trouve ton problème et on t'aidera du mieux qu'on peut.
__________________________
La récursivité est très pratique pour faire un nombre inderminé d'itération en faisant continuellement les même opération, comme pour la recherche dans un arbre de données, je l'ai aussi uttilisé pour faire l'outils Pot de peinture dans un paint.
__________________________
Celui qui tue un homme est un meurtrier,
Celui qui tue un peuple est un tyran,
Celui qui tue des millions de gens est un dieu.
(Désolé pour les fautes d'orthographe que j'ai commises, et celles que je vais faire!)
voila la fonction dont je vous parlait, je sais pas quel structure de donnée utiliser pour sauvegarder le chemin d'un pion donné. vous le remarquerez que cette fonction ne sort jamais car elle reprend le même chemin, les pions 'mangé' n'ont pas été marqué.
/****************************************************************/
//Cette fonction vérifie pour un pion donné que celui-ci peut prendre.
//mat[10][10] représente le damier
//i et j sont les indices du pion donné dans la matrice
//jr représente la couleur du joueur
void PeutPrendre(int mat[10][10],int i,int j,int jr)
{
int advers;
int k;
Pour ton jeu, je dirais que tu as besoin d'au moins deux matrices : une avant et une après... et si tu veux calculer toutes les possibilités de coups (sur le prochain coup uniquement pour l'instant), il te faudra à l'entré une matrice et à la sortie un tableau de matrice (on passe à des tableaux 3D là)...
Voila ce que je ferais pour ce jeu...
__________________________
Sujet résolu ? Pensez à mettre le tag
Un problème en C# ? Vérifiez celui-ci n'est pas déjà résolu dans la FAQ et que le sujet n'est pas traité parmis les tutoriaux ou les articles avant de poster dans le forum C#.
Premièrement, uttilise la balise code lorsque tu poste du code sur ce site, cela amiliore grandement la lisibilité.
Secondo, tu as juste un petit oublie, tu vérifie correctement si il peuvent se déplace, Mais par la suite tu ne l'est déplace pas! Autrementdit, tu ne change jamais la valeur de la matrice mat!
if (i>1 && j>1)
{
if(mat[i-1][j-1]==advers && mat[i-2][j-2]==0)
{
//Adversaire mangé donc = 0 si jai bien compris
mat[i-1][j-1] = 0;
//Puis efface l'ancienne position du pion et met la nouvelle
mat[i][j] = 0;
mat[i-2][j-2] = Joueur;
PeutPrendre(mat,i-2,j-2,cpt,jr);
}
}
__________________________
Celui qui tue un homme est un meurtrier,
Celui qui tue un peuple est un tyran,
Celui qui tue des millions de gens est un dieu.
(Désolé pour les fautes d'orthographe que j'ai commises, et celles que je vais faire!)