VB6 八后棋(EightQueen)原码与注解(慢动作播放执行档)

Home Home
引用 | 编辑 三仙
2008-11-13 22:11
楼主
推文 x5
有会员反应不会写这类题目
故将我写的原始程式与注解公布
欢迎大家参予这次的活动
只要能符合八后棋的规则
都是可以加入比赛的

Option Explicit
Dim xy(1 To 8, 1 To 8) As String
Dim i As Integer, j As Integer, k As Integer, cnt As Integer, rule As Integer, tot As Integer
Dim g As Integer, h As Integer
Dim tmpx As Integer, tmpy As Integer
Private Sub Check1_Click() '开关座标
    Text1.Visible = Not Text1.Visible
    Text3.Visible = Not Text3.Visible
End Sub
Private Sub Command1_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) '座标效果
    With Command1(Index)
        Text1.Top = .Top + 220: Text1.Left = .Left - 3500
        Text3.Top = .Top - 3500: Text3.Left = .Left + 220
    End With
End Sub
Private Sub Command1_Click(Index As Integer) '单局八后棋
    judgequeen Index
    If cnt Mod 8 = 0 And rule = 0 Then
        Text2.Text = Text2.Text & "恭禧完成一组八后棋!!": cnt = 0
    ElseIf cnt Mod 8 = 4 And rule = 0 Then
        Text2.Text = Text2.Text & " 加油 ^^ 剩 " & 8 - cnt & Chr(13) & Chr(10)
    ElseIf cnt Mod 8 <> 0 And rule = 0 Then
        Text2.Text = Text2.Text & " 剩 " & 8 - cnt & Chr(13) & Chr(10)
    End If
End Sub
Private Sub Command2_Click() '列出组合清单
Dim i1 As Integer, j1 As Integer
Dim startime As Date
startime = Now
clsxyicon 1, 1
Text2.Text = "": Text2.Text = "开始时间 " & Format(Now, "hh:mm:ss") & Chr(13) & Chr(10)
Text2.Text = Text2.Text & "-------------------------------------------------" & Chr(13) & Chr(10)
tot = 0
For i = 1 To 8 '四面的组合都是一样,只求一面即可
    tmpx = i: tmpy = 1: recxy
    For i1 = 1 To 8 '二元树规范取得八后
        For j1 = 1 To 8
            tmpx = i1: tmpy = j1: recxy
            If rule = 0 Then '取得每一Y轴所有皇后的位置
                doxyicon
                If i1 = 8 Then '当X轴在8且又可放皇后则列出组合
                    calarrQ
                    If Check2.Value = 1 Then
                        Dim yn As Integer
                        yn = MsgBox("第 " & tot & " 组,是否继续!!", vbYesNo)
            ..

访客只能看到部份内容,免费 加入会员



献花 x4
引用 | 编辑 students1
2008-11-14 01:37
1楼
  
看起来有一点难度唷~~~
消化原码中~~~谢谢三仙大大分享~~ 表情

献花 x0
引用 | 编辑 三仙
2008-11-14 02:10
2楼
  
   
下面是引用students1于2008-11-14 01:37(1楼)发表的 :
看起来有一点难度唷~~~
消化原码中~~~谢谢三仙大大分享~~ 表情


希望这帖能有抛砖引玉的功能 表情
让大家发挥自己的创意表情
不要有太大的压力表情
把奖品拿回去表情

献花 x0
引用 | 编辑 leacks
2008-11-17 08:55
3楼
  
你的好快
而且好齐全阿
大概要做出半自动完成才能比你的其全

献花 x0
引用 | 编辑 三仙
2008-11-21 23:24
4楼
  
收件日期: 即日起 至 2008.12.1 00:00 (以系统时间为准,若参赛作品少于3件,将自动顺延一个月)
请大家拨冗参加 表情

献花 x0
引用 | 编辑 rchockxm
2008-11-22 08:44
5楼
  
不太清楚八后棋的玩法 表情

多谢 三仙 大分享源码喔 表情

献花 x0
引用 | 编辑 leacks
2008-11-22 11:43
6楼
  
八后棋=八皇后
皇后=西洋棋的皇后棋
蛮多历史根据的,而巴皇后规则是传承西洋棋皇后规则

献花 x0
引用 | 编辑 三仙
2008-11-22 12:22
7楼
  
1. 八后棋是在一个 8x8 的矩阵格中放入8个棋子,而这8个棋的水平、垂直、斜线都不能碰到别的棋子
座标解题将皇后设定为(0,0)
水平座标不能放(x,0)
垂直座标不能放(0,x)
斜线座标不能放(+x,+x)、(-x,-x)
斜线座标不能放(+x,-x)、(-x,+x)
判断无值再将皇后放入

下面是引用rchockxm于2008-11-22 08:44(5楼)发表的 :
不太清楚八后棋的玩法 表情

多谢 三仙 大分享源码喔 表情


献花 x0
引用 | 编辑 sulaa
2008-11-24 22:56
8楼
  
其时这学期刚学matlab课程
问老师稍有讲一下因非关课程
还是有点想不清往那方面着手

献花 x0
引用 | 编辑 s3748679
2008-12-02 22:56
9楼
  
延迟的方法是不是利用DoEvents搭配上Timer@@?
我是顺便想问一下,假如已经执行了DoEvents但是再拟另一边的程序假如又呼叫了DoEvents似乎会出事情...
而每次这种情况我都直接改成Timer而非使用DoEvents (我是想问一下为什么会跳出错误...)
(补:假如DoEvents频率太高,可以再加上一个程序附加一个静态变数减少次数应该是个不错的法^^")

献花 x0
引用 | 编辑 三仙
2008-12-03 00:23
10楼
  
下面是引用s3748679于2008-12-02 22:56(9楼)发表的 :
延迟的方法是不是利用DoEvents搭配上Timer@@?
我是顺便想问一下,假如已经执行了DoEvents但是再拟另一边的程序假如又呼叫了DoEvents似乎会出事情...
而每次这种情况我都直接改成Timer而非使用DoEvents (我是想问一下为什么会跳出错误...)
(补:假如DoEvents频率太高,可以再加上一个程序附加一个静态变数减少次数应该是个不错的法^^")


1.延迟的方法是不是利用DoEvents搭配上Timer@@?
Ans.延迟的方式我不是使用DoEvents 搭配上Timer
       因为除了要写多工控制器之外,我不太喜欢用Timer!!

2.执行了DoEvents但是再拟另一边的程序假如又呼叫了DoEvents似乎会出事情...
Ans.我还没遇过,你能提供一下错误的程序吗??

3.想问一下为什么会跳出错误...
Ans.至于你提及的跳出错误,是指这支程式吗??

献花 x0
引用 | 编辑 年轻战士
2010-08-21 12:16
11楼
  
可惜不是用递回写的,不然就可以交作业了

献花 x0
引用 | 编辑 三仙
2010-08-21 22:01
12楼
  
下面是引用 年轻战士 于 2010-08-21 12:16 发表的 : 到引言文
可惜不是用递回写的,不然就可以交作业了


就是这样
所才不用递回来做范例
而且那种观念很难解释

献花 x0
引用 | 编辑 年轻战士
2010-08-24 12:29
13楼
  
下面是引用 三仙 于 2010-08-21 22:01 发表的 : 到引言文


就是这样
所才不用递回来做范例
而且那种观念很难解释


那你可以写出来给大家参考吗表情

献花 x0
引用 | 编辑 optometrist
2010-12-07 20:36
14楼
  
对小弟而言,

这不只是利害

简直就是超强

感谢分享~^^

献花 x0
引用 | 编辑 chakflying
2010-12-16 16:45
15楼
  
很好的教学啊...
相信造象棋也可以吧......

献花 x0
引用 | 编辑 mychat09087
2012-05-24 19:40
16楼
  
哇!我校没教这么难的程式呢,好像只教了number guessing game…… 表情 表情

献花 x0
引用 | 编辑 tonylucy321
2012-12-13 18:57
17楼
  
看起来有一点难度啊但
不太清楚八后棋怎玩 表情

献花 x0
引用 | 编辑 A2737612
2013-01-02 10:24
18楼
  
有源码,拿去收藏了

献花 x0