Carrés magiques

Contenu du snippet

Réaliser des carrés de nombres impaires tel que la somme des lignes et la somme des colonnes soient égales..................................................................

Source / Exemple :


<html><head><title>Carré magique</title><style type="text/css">div{position:absolute;top:100px;left:400px;}td{width:20px;height:20px;font-family:Verdana,Arial,Helvetica;font-size:12px;text-align:center;color:white}</style></head><body bgcolor="silver">
<script language="Javascript"><!--
var n=5;
if(n<3)n=3;//n minimum à 3
n|=1;//nombre impair uniquement
var c=new Array();
function affiche()
{
 with(document)
 {
  clear();
  var i,j;
  write("<div><table border='1px' width='"+20*n+"px' height='"+20*n+"px' cellpadding='0' cellspacing='0'>");
  for(j=0;j<n;j++)
  {
   write("<tr>");
   for(i=0;i<n;i++)
   {
//    if((i+j)%2)write("<td bgcolor='black'>"+c[n*i+j]+"</td>");
//    else
	write("<td bgcolor='white'><font color='black'>"+c[n*i+j]+"</font></td>");
   }
   write("</tr>");
  }
  write("</table>Total :  "+(1+((n*n)>>>1))*n+"</div>");
 }
}
function init()
{
	var j,x=0,y=1,z;
	for(z=0;z<n*n;z++)c[z]=0;
	for(z=1;z<=n*n;z++)
	{
	 c[n*y+x]=z;
	 x=(x+2)%n;
	 j=(y+1)%n;
	 if(c[n*j+x]!=0)x=(x+2)%n;else y=j;
	}
	affiche();
}
init();
//--></script></body></html>

A voir également

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.