REMPLIR UN TABLEAU EN SPIRALE

Signaler
Messages postés
72
Date d'inscription
jeudi 15 septembre 2005
Statut
Membre
Dernière intervention
2 juin 2009
-
Messages postés
72
Date d'inscription
jeudi 15 septembre 2005
Statut
Membre
Dernière intervention
2 juin 2009
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/44818-remplir-un-tableau-en-spirale

Messages postés
72
Date d'inscription
jeudi 15 septembre 2005
Statut
Membre
Dernière intervention
2 juin 2009

Merci nickadele pour le post que tu as mis sur le site, je l'ai regardé et j'ai mieux compris et sa ma permis d'optimiser mon code et j'en arrive a un code similaire au tiens. En fait je me prenait trop la tête avec les lignes et colonnes mais la j'ai mieux compris et j'ai bien commenté mon code afin de le refaire correctement à tout moment.

Et tu avais raison pour les compteurs, maintenant j'en utilise plus que un seul.


Franchement merci à toi d'avoir pris sur ton temps pour m'aider à faire ce tableau spirale et franchement c'est vraiment gentil de ta part de m'avoir accordé cette aide précieuse nickadele.


MERCI MERCI MERCI
Messages postés
1251
Date d'inscription
mercredi 7 août 2002
Statut
Modérateur
Dernière intervention
10 avril 2013

Bonjour,

si la taille du carré est supérieure à 1
if (vartaille>1){
je m'assure d'avoir une valeur entière, pour bien faire il faudrait également tester qu'il ne s'agit pas d'une chaine de caractère ou d'une valeur undifined
var taille=parseInt(vartaille);
var nbr=0;
var damier=new Array(taille);
Calcul le nombre de carré qu'il y a dans mon carré initiale en fonction de la taille
ex : si j'ai un carré de taille 4 il contient 2 carrés (4/2)
var nbrcarre = parseInt(taille / 2);
...........
il s'agit du calcul du modulo (reste d'une division) si taille vaut 5, la division de 5 par 2 donne comme reste 1 (5%2)=1. J'ai fait ce test car si tu regardes le remplissage du carré avec une taille impaire tu t'apercevras qu'il reste un carré de 1 sur 1 (le centre) en fin de remplissage. Il faut donc le remplir avec la dernière valeur.
if (taille%2){
damier[premiereligne][premiereligne]=nbr;
//affichage
affichagetableau(damier);
}
Messages postés
72
Date d'inscription
jeudi 15 septembre 2005
Statut
Membre
Dernière intervention
2 juin 2009

Je viens de regarder tout ton code javascript et j'aimerai que tu m'explique les premières lignes

if (vartaille>1){
var taille=parseInt(vartaille);
var nbr=0;
var damier=new Array(taille);
var nbrcarre = parseInt(taille / 2);


et aussi cette partie de code:

if (taille%2){
damier[premiereligne][premiereligne]=nbr;
//affichage
affichagetableau(damier);
}


Je te remercie beaucoup nickadele