algo tableau a deux dim
Forum Programmation : algo tableau a deux dim
TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique.
Pour obtenir de l'aide, inscrivez-vous gratuitement !
alla l'algo ma hantise c pas que j'aime pas mais bon c pas concret je trouve on mais pour l'ecole voila ce qu'il me demande
En gros déclaration d'un tableau de 10 sur 10 (à deux dimensions)
ensuite la case (1,1) a toujours la valeur de 1 et à partir de là il y a des déplacements
3 cases en horizontal
3 cases en vertical
2 cases en diagonal
a chaque deplacement on incrémente de 1
ex: au bout de 3 déplacements la case a la valeur de 4
la partie s'arrête quand aucun déplacement n'est plus possible
et à la fin, il faut afficher le nombre de déplacements
pour moi je partirais sur un tableau a 2 dimension
var tab: tableau de (10,10)
je declare mes deux indices
var i ,j :entier
mais apres je plane pour le deplacement de case en horizontale en verticale et en diagonales
pour ce qui est du on arete la partie des que le deplacement n'est pus possible ( en gros case deja ouccupe par un deplacement anterieur ou sortie de tableau ) faut poser un TANT QUE ?
Quelqu'un de généreux peut t'il m'aider ?
Qu'est ce qu'on incrémente de 1 ??
Arno
Edit : tu aurais pas l'énoncé complet ?
2 boucle pour... creuse toi un peu la tete!
deux boucles...
non en fait je pense que c'est plutot du récursif vu que après un déplacement, tu arrives sur une nouvelle case et tu peux alors te déplacer de cette nouvelle case soit en diag, soit a l'horiz, soit a la verti...
donc je dirais une fonction du genre:
void fct(int **tab, int i, int j, int val)
{
tab[i-1][j-1] = val;
if(i+3 <= 10) fct(tab, i+3, j, val + 1);
if(j+3 <= 10) fct(tab, i, j+3, val + 1);
if(i+2 <= 10 && j+2<10) fct(tab, i+2, j+2, val + 1);
}
et tu appelles ta fonction avec fct(tab, 1, 1, 1);
PS: il y a des "-1" car les tableaux en C commencent a 0, donc ici les indices vont de 0 à 9. Le code peut être amélioré, mais il est assez facile a comprendre
EDIT: en fait je crois que j'ai rien compris a ce qu'il fallait faire vu que ca a l'air d'être un jeu. La j'ai jsute rempli le tableau selon les règles de déplacement indiqué...
bon on va mettre au clair les fonctions sont a eviter dans ce type d'algo
j'ai un tableau de 10 sur 10
la case de coordonne 1,1 est la premiere case c'est la ou est le pointeur en premier ensuite il se deplace
soit en diag soit en horiz soit en verticale
la partie s'arete lorsque le pointeur ne peut plus se deplacer c'est a dire lorquil sort du tableau ou qu'il passe par unecase sur laquelle il etait deja passe
ATTENTION : LES DEPLACEMENT SONT ALEATOIRE
en algo c'est aleatoire (x)
aurevoir et merci de vos reponse
entier compteur = -1
faire
{
compteur = compteur + 1
aleatoire(i,j)
}
tant que (i <= 10 et j <=10 et i>=1 et j >=1)
afficher(compteur)
a noter que i et j sont les coordonnées du point courant
pose ton enoncé ça devient incomprehensible
Il y a 2282 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
