Tom's Guide > Forum > Programmation > algo tableau a deux dim

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 !
Mot :    Pseudo :           
 

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 ?

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Qu'est ce qu'on incrémente de 1 ??

Arno


Edit : tu aurais pas l'énoncé complet ?

Répondre à -arno-

2 boucle pour... creuse toi un peu la tete!

Répondre à imer@IDN

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é...

Répondre à tiopai

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

Répondre à infogian

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

Répondre à tiopai

pose ton enoncé ça devient incomprehensible

Répondre à imer@IDN
Tom's Guide > Forum > Programmation > algo tableau a deux dim
Aller à :

Il y a 2282 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens