⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queen.scp

📁 一个脚本语言的解释器
💻 SCP
字号:

function test(array, x, y)
{
	for(i=0; i<8; i=i+1)
	{
		for(j=0;j<y;j=j+1)
		{
			if(array[i][j] == "Q")
			{
				if(x == i || y==j || x-i == y-j || i-x == y-j)
					return false;
			}
		}
	}
	return true;
}

function queen_aux(array, x, y)
{
	if(y>=8) return true;
	for(i=x; i<8; i=i+1)
	{
		if(test(array, i, y))
		{
			array[i][y] = "Q";
			if(!queen_aux(array, 0, y+1))
				array[i][y] = ".";
			else
				return true;
		}
	}
	return false; // not found;
}

function queen(array)
{
	return queen_aux(array, 0, 0);
}

function all_queens_aux(array, x, y, count)
{
	if(y>=8) return true, count+1;
	for(i=x; i<8; i=i+1)
	{
		if(test(array, i, y))
		{
			array[i][y] = "Q";
			result,count = all_queens_aux(array, 0, y+1, count);
			if(result)
			{
				print_array(array);
			}
			array[i][y] = ".";
		}
	}
	return false, count; // not found;
}

function all_queens(array)
{
	_,count = all_queens_aux(array, 0, 0, 0);
	return count;
}

function print_array(array)
{
	for(i=0;i<8;i=i+1)
	{
		for(j=0;j<8;j=j+1)
		{
			print(array[i][j]);
		}
		println();
	}
	println();
}

function main()
{
	for(i=0;i<8;i=i+1)
	{
		for(j=0;j<8;j=j+1)
		{
			array[i][j] = ".";
		}
	}
	//println(queen(array));
	//print_array(array);
	println("solutions : ", all_queens(array));
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -