Après avoir donné un coup de main à quelqu'un à ce sujet, j'ai décidé de partager l'algorithme que j'ai et que j'utilise pour construire un carré magique.
Mon principe est de remplir le carré magique dans le direction NORD-OUEST (en allant vers la gauche et en montant), avec un ensemble de controls associés.
Vous verrez ça dans ma source.
Coté présentation c'est pas fameux, mais c'est le cadet de mes soucis (et je crois que beaucoup comprendront).
Source / Exemple :
<html>
<head>
<title>Construction des Carrés Magiques</title>
</head>
<body>
<form action="Carrés Magiques.asp" method="post" name="C_M">
Taille du Carré Magique:
<input type="text" name="nb">
<input type="submit" value="Générer">
<br /><br />
</form>
<%
dim Taille, nbEnCours, nbElt
dim i,j 'les compteurs
dim a(10,10) 'la matrice
'on receuille la taille du carré à construire
taille=request.form("nb")
'la taille donné doit:
'- Etre un nombre impaire
'- Etre comprise entre 1 et 10 (pour notre cas)
if ((taille mod 2)=0) or (taille<=1) or (taille>=10)then
response.write("Veuillez saisir un nombre impair compris entre 1 et 10!!")
else
'affectation du nombre total de nombre de notre carré
nbElt=taille*taille
nbEnCours=1
do while (nbEnCours <=nbelt)
if nbEncours=1 then
i=1
j=(taille+1)/2
else
i=i-1
j=j-1
end if
if ((nbEnCours mod taille)=1) and (nbEnCours <> 1) then
i=i+2
if i>taille then i=1
j=j+1
if j>taille then j=1
end if
if i<=0 then i=taille
if j<=0 then j=taille
a(i,j)=nbEncours
nbEnCours=nbEnCours+1
loop
'affichage du carré
response.write("<h2>Carré Magique de taille " & taille & "</h2><br />")
response.write("<table border=2>")
for i=1 to taille
response.write("<tr>")
for j=1 to taille
response.write("<td>" & a(i,j) & "</td>")
next
response.write("</tr>")
'response.write("<br />")
next
response.write("</table>")
end if
%>
<body>
</html>
Conclusion :
j'attend vos questions et suggestions concernant cette façon de voir la chose
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.