JavaScript problem

267
15 марта 2018, 08:46

В резултате я должен получить нижние матрицы которые нарастают по кругу до середины. Я написал код но он не работает. Проблема где-то в 3 или 4 цикле FOR в WHILE(f).
n=3 n=5
1 2 3 1 2 3 4 5 8 9 4 16 17 18 19 6 7 6 5 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9

<html> 
 <head> <title> Matrix 1</title>  
 </head> 
 <body> 
<script LANGUAGE="JavaScript"> 
	n = parseInt(prompt('N:','5')); 
        A = new Array(); 
	for(i=0;i < n;i++){ 
		A[i] = new Array(); 
		for(j=0;j<n;j++) A[i][j] = 0 ;  
	} 
         DIM=parseInt(n*n);         
         //A[i][j]=1;  
//========================== 
        document.write("<br>Matrix: <table border='2'>".fontcolor('red')); 
	for(i=0;i< n;i++){ 
	    document.write("<tr>"); 
		for(j=0;j< n;j++){ 
		  document.write("<td >"+A[i][j]+" ");} 
		document.write("<br>"); 
	} 
	document.write("</table>"); 
	document.write("========================================== <br>"); 
 
//=========================== 
k=1; nr=1; f=true; 
while(f){ 
 i=k-1;  
 for(j = k-1; j <= n-k; j++){ 
	if(nr <= DIM){ A[i][j] = nr ; nr++; document.write(A[i][j]+' ');} else {f=false;}; 
 }; 
 document.write('<br>'); 
 for(i=k; i <= n-k; i++){ 
	if(nr <= DIM){ A[i][j] = nr ; nr++; document.write(A[i][j]+' ');} else {f=false;}; 
 }; 
  document.write('<br>'); 
 for(j = (n-k-1); j >= (k-1); j--){ 
	if(nr <= DIM){A[i][j] = nr ; nr++; document.write(A[i][j]+' ');} else {f=false;}; 
 }; 
 document.write('<br>'); 
 for(i= (n-k-1); i >= k; i--){ 
	if(nr <= DIM){ A[i][j] = nr ; nr++; document.write(A[i][j]+' ');} else {f=false;}; 
 }; 
 document.write('<br>'); 
 k++; 
}; 
 //===================================== 
        document.write("<br>Matrix: <table border='2'>".fontcolor('red')); 
	for(i=0;i< n;i++){ 
	    document.write("<tr>"); 
		for(j=0;j< n;j++){ 
		  document.write("<td >"+A[i][j]+" ");} 
		document.write("<br>"); 
	} 
	document.write("</table>"); 
	document.write("========================================== <br>"); 
</script> 
</body> 
</html>