用深度优先搜索算法解决N王后问题
//A backtracking depth-first search (DFS) solution in JScript:
import System;
Console.ForegroundColor=14;Console.BackgroundColor=8;
Console.Clear();
Console.Title="N Queens";Console.Write("N=");
var n=+Console.ReadLine(),r=new Array(n),s=1;
function safe(x,y)
{
if(y==0)return true;
for(var i=0;i<y;i++)
{
if(r[i]==x||r[i]==x+y-i||r[i]==x-y+i)return false;
}
return true;
}
function board()
{
Console.WriteLine("Solution "+s+":");
for(var y=0;y<n;y++)
{
for(var x=0;x<n;x++)
{
Console.BackgroundColor=(x+y+1)%2*7;
Console.Write(x==r[y]?"QV":" ");
}
Console.BackgroundColor=8;Console.WriteLine();
}
Console.ReadKey(s++);Console.WriteLine();
}
function queen(y)
{
for(var x=0;x<n;x++)
{
if(safe(x,y))
{
r[y]=x;
if(y==n-1)board();else queen(y+1);
}
}
}
queen(0);
Forse altri canterà con miglior plettro.