有没有八皇后问题的vb源代码?

yurilin 2004-08-29 11:39:05
有没有八皇后问题的vb源代码?5皇后,更多?
...全文
417 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiang8360 2004-09-01
  • 打赏
  • 举报
回复
up
lsftest 2004-08-31
  • 打赏
  • 举报
回复
下面是八皇后的vb源码,但显示是繁体字,要装其他软件才能看清。。。参考一下他的算法吧:
http://www.lihuasoft.net/source/data/vb/game/Queen.zip
northwolves 2004-08-31
  • 打赏
  • 举报
回复
八皇后:
http://blog.csdn.net/northwolves/archive/2004/07/24/50388.aspx

N皇后:
http://blog.csdn.net/northwolves/archive/2004/08/09/69493.aspx

五皇后:(可能有误)
http://blog.csdn.net/northwolves/archive/2004/08/08/68485.aspx



fa7274 2004-08-31
  • 打赏
  • 举报
回复
首先在窗体上添加三个控件:
1.MSFLEXGRID
2.TEXTBOX
3. COMMAND

Option Explicit
''N皇后互不攻击问题的回溯算法


Private Sub Command1_Click()
Dim n As Long
Dim i As Long, j As Long
Dim a() As Long
n = CLng(Text1.Text)
ReDim a(1 To n)
For i = 1 To n
a(i) = 1
Next

For i = 2 To n
10:
If a(i) <= n Then
For j = 1 To i - 1
If a(j) = a(i) Or Abs(a(i) - a(j)) = i - j Then a(i) = a(i) + 1: GoTo 10
Next
If i = n Then MsgBox "有解" ''要求多解的话,可以再继续回溯
Else
a(i) = 1
i = i - 1
a(i) = a(i) + 1
If i = 1 Then
If a(i) > n Then MsgBox "无解": Exit Sub
i = 2
End If
GoTo 10
End If
Next

MSFlexGrid1.Rows = 0
MSFlexGrid1.Cols = 0
MSFlexGrid1.Rows = n + 1
MSFlexGrid1.Cols = n + 1
For i = 0 To n
MSFlexGrid1.TextMatrix(0, i) = i
MSFlexGrid1.TextMatrix(i, 0) = i
MSFlexGrid1.ColWidth(i) = 225
Next
For i = 1 To n
MSFlexGrid1.TextMatrix(i, a(i)) = "*"
Next

End Sub
cosio 2004-08-31
  • 打赏
  • 举报
回复
up
Andy__Huang 2004-08-29
  • 打赏
  • 举报
回复
沒聽說過,自己研究吧!是什麼意思大家都不知道?
kmzs 2004-08-29
  • 打赏
  • 举报
回复
研究研究,没听到过。。。
jordi2014 2004-08-29
  • 打赏
  • 举报
回复
下面这些这些不是vb源码,但我相信在你理解了其算法后,很容易改为vb实现的。

http://www.chinaai.org/Article_Show.asp?ArticleID=234

http://www.programfan.com/showarticle.asp?id=2229
yurilin 2004-08-29
  • 打赏
  • 举报
回复
所谓八皇后就是
就是国际象棋的棋盘(8*8)上放8个皇后,使得这几个皇后都不可以相互吃子。共有几种放法

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧