Je vous remercie d'avance pour l'aide que vous me porterez, car en plus je dois le faire pour lundi prochain et sa fait déja 3jours que j'essaie mais je n'y arrive pas.
nickadele
Messages postés1251Date d'inscriptionmercredi 7 août 2002StatutModérateurDernière intervention10 avril 2013 23 nov. 2007 à 20:50
Bonjour,
si c'est un devoir, je pense pas que ce soit à nous de t'apporter la solution .
Ton problème c'est quoi, trouver l'algorithme ou créer le tableau ?
De plus 5 x 5 ça fait 25 et pas 24 !
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
nickadele
Messages postés1251Date d'inscriptionmercredi 7 août 2002StatutModérateurDernière intervention10 avril 2013 23 nov. 2007 à 21:00
Oups, sorry j'avais pas vu que tu avais commencé à 0, autant pour moi !
Sinon une petite recherche sur http://search.codes-sources.com et tu devrais au moins trouver l'algo nécessaire.
Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
nickadele
Messages postés1251Date d'inscriptionmercredi 7 août 2002StatutModérateurDernière intervention10 avril 2013 24 nov. 2007 à 00:10
commence par le début de la spirale, analyse le mouvement, place des repères, la logique viendra d'elle même.
Tu as une base, tu sais que c'est un carré et tu en connais la taille !
Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
je suis d'accord avec toi, j'ai fais sa sur papier mais le problème c'est que sa doit etre trop simple et je ne trouve pas la logique pour en faire un bon algorithme.....
Oui je suis d'accord avec toi, je me doute bien qu'il y a plusierus possibilités, mais la a chaque fois que je fais mon tableau sa me fait un tableau dans l'ordre et pas commme il le faudrait. je ne vois pas comment lui faire changer le sens de remplissage...
nickadele
Messages postés1251Date d'inscriptionmercredi 7 août 2002StatutModérateurDernière intervention10 avril 2013 24 nov. 2007 à 13:44
En fait je crois que tu te focalises trop sur le contenu et pas sur la méthode de remplissage !
Observe bien ton carré :
0 1 2 3 4 15 16 17 18 5 14 23 24 19 6 13 22 21 20 7 12 11 10 9 8
La seule chose que fait l'algo c'est parcourir le pérmètre d'un carré dont tu connais la taille et qui contient lui même un autre carré, etc...
1 . remplir la première ligne
2. remplir la dernière colonne
3. remplir la dernière ligne
4. remplir la première colonne
5. Passez au carré suivant.
Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
Alors la je suis tout a fait d'accord avec toi!!!J'ai tout d'abord résonné de la même façon et j'ai réussi a remplir la première ligne (facile à mettre en place) mais le soucis que j'ai, c'est que je ne sais pas comment faire en javascript pour dire que je me place dans la dernière colone du tableau.
Pour le moment j'arrive à un tableau comme celui-ci:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
voici mon code javascript:
Tableau en spyrale:
<script language="javascript"> <!--
var x=0;
var y=0;
var nbr=0;
var damier;
damier=new Array(16);
for(var j=0;j<4;j++)
{
for(x=0;x<4;x++)
{
damier[x]=nbr;
document.write(damier[x])
nbr++;
}
document.write("
")
}
//-->
</script>
ps: pour les choses qui peuvent paraitre simple je me complique trop la tete...
nickadele
Messages postés1251Date d'inscriptionmercredi 7 août 2002StatutModérateurDernière intervention10 avril 2013 24 nov. 2007 à 15:06
ben voilà tu commences à te rapprocher!
Ton problème vient du fait que tu imbriques les boucles for.
Donc si je reviens sur l'approche :
1. une boucle for qui parcours la ligne du haut.
2. une boucle for qui parcours la colonne de droite.
3. une boucle for qui parcours la ligne du bas.
4. une boucle for qui parcous la colonne de gauche.
Essaye déjà de remplir les bords du premier carré, après tu verras comment attaqué le carré suivant et ainsi de suite !
PS: attention ton tableau damier n'a qu'une seule dimension, hors il s'agit d'un tableau à 2 dimensions.
Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
Jusque la sa va, j'ai mon tableau rempli de 0 à 15 avec 16 valeurs. maintenant faut que j'essai de comprendre, comment faire pour passer d'une ligne a une colonne
nickadele
Messages postés1251Date d'inscriptionmercredi 7 août 2002StatutModérateurDernière intervention10 avril 2013 24 nov. 2007 à 16:01
Pour être plus propre tu peux même écrire :
function tableauspirale(taille){
var damier=new Array(taille);
//initialisation
for (var j=0;j<damier.length;j++){damier[j]= new Array(damier.length);}
for (var j=0;j<damier.length;j++)
{
for (var x=0;x<damier[j].length;x++){damier[j][x]=0;}
}
......
}
Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle
De même je suis toujours bloqué sur le fait de faire changer le sens de rempliassage du tableau... je ne vois pas comment procéder au test necessaire a l'elaboration de se remplissage...
J'aimerai faire en sorte qu'avec ce code je puisse traiter n'importe quelle dimension de tableau avec n cases tout en tenant compte des sens de rotation car la je n'y arrive pas
nickadele
Messages postés1251Date d'inscriptionmercredi 7 août 2002StatutModérateurDernière intervention10 avril 2013 25 nov. 2007 à 11:34
Voilà tu y es presque, maintenant tu dois remplacer les valeurs constantes par des valeurs dynamique en fonction de la taille du carré, si tu observes bien les constantes tu verras qu'il y a une logique de changement à chaque tour de ton carré.
Tu dois également limité ton algo à un seul tour du carré et faire une boucle globale qui va faire le tour de ton carré autant de fois qu'il y a de carré.
Je ne comprend pas pourquoi tu utilises plusieurs compteurs, un seul suffit, il sera incrémenté au fur et à mesure de l'avancement.
Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle