0

15で数字シャッフル ゲームを作成しようとしていVBます。

後で、15ピースを完全なイメージに提出する必要があります。

現時点では、数字で構築しようとしています。このメッセージが表示されるまで、すべて正常に機能していました。

Conversion from string "" to type 'Double' is not valid.

私はそれを一列に並べました:

 If butt2.Content = "" Then

ここに私のコードがあります:

<pre lang="vb">Class MainWindow

    Private Sub btn1_Click(sender As Object, e As RoutedEventArgs) Handles btn1.Click
        '2,4
        checkBtn(btn1, btn4)
        checkBtn(btn1, btn2)
        chechSolved()
    End Sub

    Private Sub btn2_Click(sender As Object, e As RoutedEventArgs) Handles btn2.Click
        '1,3,5
        checkBtn(btn2, btn1)
        checkBtn(btn2, btn3)
        checkBtn(btn2, btn5)
        chechSolved()
    End Sub

    Private Sub btn3_Click(sender As Object, e As RoutedEventArgs) Handles btn3.Click
        '2,6
        checkBtn(btn3, btn2)
        checkBtn(btn3, btn6)
        chechSolved()
    End Sub

    Private Sub btn4_Click(sender As Object, e As RoutedEventArgs) Handles btn4.Click
        '1,5,7
        checkBtn(btn4, btn1)
        checkBtn(btn4, btn5)
        checkBtn(btn4, btn7)
        chechSolved()
    End Sub

    Private Sub btn5_Click(sender As Object, e As RoutedEventArgs) Handles btn5.Click
        '2,4,6,8
        checkBtn(btn5, btn2)
        checkBtn(btn5, btn4)
        checkBtn(btn5, btn6)
        checkBtn(btn5, btn8)
        chechSolved()
    End Sub

    Private Sub btn6_Click(sender As Object, e As RoutedEventArgs) Handles btn6.Click
        '3,5,9
        checkBtn(btn6, btn3)
        checkBtn(btn6, btn5)
        checkBtn(btn6, btn9)
        chechSolved()
    End Sub

    Private Sub btn7_Click(sender As Object, e As RoutedEventArgs) Handles btn7.Click
        '4,8
        checkBtn(btn7, btn4)
        checkBtn(btn7, btn8)
        chechSolved()
    End Sub

    Private Sub btn8_Click(sender As Object, e As RoutedEventArgs) Handles btn8.Click
        '5,7,9
        checkBtn(btn8, btn5)
        checkBtn(btn8, btn7)
        checkBtn(btn8, btn9)

        chechSolved()
    End Sub

    Private Sub btn9_Click(sender As Object, e As RoutedEventArgs) Handles btn9.Click
        '6,8
        checkBtn(btn9, btn6)
        checkBtn(btn9, btn8)

        chechSolved()
    End Sub

    Sub checkBtn(ByVal butt1 As Button, ByVal butt2 As Button)

       If butt2.Content = "" Then
            butt2.Content = butt1.Content
            butt1.Content = ""
        End If
    End Sub

    Sub chechSolved()

        If btn1.Content = &quot;1&quot; And btn2.Content = &quot;2&quot; And btn3.Content = &quot;3&quot; And btn4.Content = &quot;4&quot; And btn5.Content = &quot;5&quot; And btn6.Content = &quot;6&quot; And btn7.Content = &quot;7&quot; And btn8.Content = &quot;8&quot; And btn9.Content = &quot;&quot; Then
            MsgBox(&quot;הצלחת&quot;)
        End If
    End Sub



    Sub shuffle()

        Dim a(8), i, j, RN As Integer
        Dim flag As Boolean

        flag = False
        i = 1
        a(j) = 1

        Do While i &lt;= 8
            Randomize()
            RN = CInt(Int((8 * Rnd()) + 1))

            For j = 1 To i
                If (a(j) = RN) Then
                    flag = True
                    Exit For
                End If
            Next

            If flag = True Then
                flag = False
            Else
                a(i) = RN
                i = i + 1
            End If

        Loop

        btn1.Content = a(1)
        btn2.Content = a(2)
        btn3.Content = a(3)
        btn4.Content = a(4)
        btn5.Content = a(5)
        btn6.Content = a(6)
        btn7.Content = a(7)
        btn8.Content = a(8)
        btn9.Content = &quot;&quot;
    End Sub

    Private Sub btnSH_Click(sender As Object, e As RoutedEventArgs) Handles btnSH.Click
        shuffle()
    End Sub
End Class</pre>

見て頂ければ大変助かります。

4

1 に答える 1

0

Content を Integer 型 (btn1.Content = a(1)) に設定したため、コンパイラが文字列を btn.Content と比較する際に問題が発生している可能性があります。

于 2013-07-01T14:26:19.250 に答える