65.9K
CodeProject 正在变化。 阅读更多。
Home

竞选按钮记忆游戏 2 (随机放置,时间限制)

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.71/5 (9投票s)

2004 年 2 月 24 日

CPOL

2分钟阅读

viewsIcon

38330

downloadIcon

440

这个版本的竞选按钮记忆游戏使用计时器来限制游戏时间和限制用户查看他们选择的图像的时间(当图像不匹配时)。这个版本还随机放置政治按钮在表单上,以便可以无限次地玩这个游戏。

引言

这个竞选按钮记忆游戏第二部分由 www.pcbutton.com 提供 - (2004 年竞选按钮、政治按钮和纪念品按钮)

这个版本的竞选按钮记忆游戏使用计时器来限制游戏时间和限制用户查看他们选择的图像的时间(当图像不匹配时)。这个版本还随机放置政治按钮在表单上,以便可以无限次地玩这个游戏。

当用户选择了两个竞选按钮,他们有 1-2 秒的时间来查看它们。然后,如果这两个政治按钮相同,它们将保持可见,否则它们将消失。整个游戏也在 30 秒的时间限制内运行。在 30 秒的时间限制结束时,如果用户没有匹配所有竞选按钮,那么他/她就输掉了游戏。如果在 30 秒的时间限制结束前,用户匹配了所有政治按钮,那么他/她就赢了游戏。在每局游戏结束时,会出现“开始另一局游戏”按钮,以便用户可以玩另一轮。

Sample image

竞选按钮是如何随机放置的?

当政治按钮数据(data.xml)被加载时,竞选按钮节点从随机位置提取并放置在文档的末尾。这个过程重复 100 次,而数据只有 12 个节点,因此它们被很好地随机化了。如果政治按钮数据超过 100 个节点,那么这个逻辑就必须修改为迭代更多次。

实例化一个文档来保存政治按钮数据

Set pDoc = New MSXML2.DOMDocument

加载政治按钮数据

pDoc.Load "data.xml"

迭代 100 次,从政治按钮数据中随机提取竞选按钮,并将它们放置在文档的末尾。

    Dim i As Integer
    For i = 0 To 100
        Dim nl As IXMLDOMNodeList
        Set nl = pDoc.selectNodes("./images/image")
        Dim iLen As Integer
        iLen = nl.length
        Dim iFirstNode As Integer
        iFirstNode = getRandLocation(iLen)
        Dim temp1 As MSXML2.IXMLDOMNode
        Set temp1 = nl.Item(iFirstNode)
        Dim newtemp1 As MSXML2.IXMLDOMNode
        Set newtemp1 = temp1.cloneNode(True)
        Dim imgs As MSXML2.IXMLDOMNode
        Set imgs = pDoc.selectSingleNode("./images")
        imgs.appendChild newtemp1
        imgs.removeChild temp1
    Next

计时是如何工作的?

我们只使用计时器来计算一秒的间隔并递增计数器。计数器的值,因为它们最后一次重置,决定了已经过去了多少秒。这种方法的分辨率是一秒,但适用于我们的目的。

Private Sub tmrSecond_Timer()

如果用户选择了两个竞选按钮

If bStarted = True Then

如果他们查看两个竞选按钮的时间到了

If intTimeLeft = difficulty Then

然后继续,如果它们匹配,则保留竞选按钮的显示,或者如果它们不匹配,则隐藏它们。

        continue
        bStarted = False
    End If
    intTimeLeft = intTimeLeft + 1
Else
    intTimeLeft = 0
End If

如果游戏开始

If bSecondsRemainingStarted = True Then

如果时间到了

If txtTimeRemaining = "0" Then

结束游戏,因为所有政治按钮没有在规定时间内匹配。

            stopGameTimer
            stopGameTimer
            cmdButton.Caption = "Start Another Game"
            lblOuput = "Click ""Start Another Game"" _
			to begin playing Campaign Button Memory"
            MsgBox "Sorry, time is up. Game over."
            cmdButton.Visible = True
        End If
        If CInt(txtTimeRemaining) > 0 Then
            txtTimeRemaining = CInt(txtTimeRemaining) - 1
        End If
    End If
End Sub

历史

  • 2004年2月23日:最初发布
© . All rights reserved.