using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class Default2 : System.Web.UI.Page
{
const int QUEENS = 8;
int[] QuSite = new int[QUEENS];
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
Queen(0);
}
private void Queen(int n)
{
int row;
if (n == QUEENS)
{
OutputResult();
//return;
}
else
{
for ( row = 1; row <= QUEENS; row++)
{
QuSite[n] = row;
if (CanPut(n))
{
Queen(n + 1);
}
}
}
}
private bool CanPut(int n)
{
int bn;
for (bn = 0; bn < n; bn++)
{
if (QuSite[n] == QuSite[bn])
{
return false;
}
if (Math.Abs(n - bn) == Math.Abs(QuSite[bn] - QuSite[n]))
{
return false;
}
}
return true;
}
private void OutputResult()
{
Response.Write("<br><br>");
Response.Write("<table style='width: 480px; height: 389px' border='3'>");
int[] dataQueen=new int[8];
for(int j=0;j<QUEENS;j++)
{
dataQueen[QuSite[j]-1]=j;
}
for (int i = 0; i < QUEENS; i++)
{
Response.Write("<tr>");
for(int h=0;h<dataQueen[i];h++)
{
Response.Write("<td style='width: 98px; height: 21px'></td>");
}
Response.Write("<td style='width: 100px; height: 21px'><Image src='images.jpg' width='100' height='100'/></td>");
for (int k =dataQueen[i] + 1; k < QUEENS; k++)
{
Response.Write("<td style='width: 98px; height: 21px'></td>");
}
}
Response.Write("</table>");
}
}
分享到:
相关推荐
我自己写的八皇后算法,共享一下,大家学习学习
本程序为实现八皇后算法的代码,你值得拥有
经典的八皇后问题是学习算法及程序设计语言的必经之路,这里提供一种算法
八皇后问题,是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一...
八皇后问题是一个经典的计算机编程问题,源于19世纪由国际象棋大师马克斯·贝瑟尔提出。问题的核心是:如何在8×8的棋盘上放置8个皇后,使得任意两个皇后都无法通过直线互相攻击,即任意一行、一列或对角线都不能有...
八皇后算法,使用递归算法,delphi面向对象实现
图形化的八皇后代码, 其中包含拉斯维加斯,回溯, 拉斯维加斯+回溯的算法。
八皇后算法在linux下实现,使用C语言
八皇后问题是一个经典的回溯算法案例,它的目标是在一个8×8的棋盘上放置八个皇后,使得任意两个皇后之间都不在同一行、同一列或同一斜线上。这个问题在计算机科学中被广泛用作演示如何使用递归和回溯算法解决复杂...
八皇后问题是一个经典的计算机编程问题,它源于19世纪由数学家鲁道夫·费迪南德·莱昂哈德·欧拉提出,旨在在8×8的国际象棋棋盘上放置八个皇后,使得任意两个皇后都无法通过同一行、同一列或同一对角线互相攻击。...
这是通过C#控制台程序实现的八皇后算法,对于初学算法的挺有研究价值
C#语言实现的八皇后问题求解,代码比较简洁!但需要VS平台支持,才能编译!
Java实现八皇后问题,两重循环,检查左右斜对角线,有压栈,回溯
由四皇后 推理到N皇后问题 详细的回溯法
用滚轮盘的方法,以及自己设立了一个适应度函数,来用遗传算法解决八皇后问题。
8皇后问题算法实现,基于Java的8皇后问题
八皇后问题是一个经典的问题,在棋盘上放置八个皇后,使得任意两个皇后都无法在同一行、同一列或同一条对角线上,从而找到所有可能的摆放方案。这个问题在计算机科学中常被用来作为解决约束满足问题的实例,同时也...
个人写的一个八皇后问题,有需要的,可以下载。用C++编写的!
八皇后问题的C++算法,利用回溯算法输出全部可行解。