1

私は Visual Basic が初めてで、ユーザーに 2 つの画像が表示され、正しいものを選択する必要があるゲームを作成しようとしています (クイズのようなものです)。ただし、やりがいのあるものにしたいので、ユーザーがもう一度再生するたびに画像がランダムにペアになるようにします。

このために、約 10 枚の画像があり、一度に 2 枚ずつ表示されます。プレーヤーが正しい画像をクリックすると、ラベルを使用して記録されるポイントを受け取ることができ、2 つの新しい画像がそれらを置き換えてプロセスが繰り返されますが、それらが間違っている場合は、「正しくありません!」というメッセージが表示されます。 " その後、それらはマークを失い、2 つの新しい画像がそれらに置き換わります。

TableLayoutPanel と 2 つの画像ボックスを使用してインターフェイスを作成しました。ランダムな画像を生成するコードをいくつか作成しましたが、それらは繰り返されてしまいます。これは望ましくありません。しかし、コードの最後に RemoveAt を配置すると、それらは繰り返されませんが、プレーヤーが写真を 6 回クリックした後、「インデックスが範囲外です」というエラーが発生します。これは、ゲームが終了する前に発生するため、ドンそれもしたくない!

これが私がこれまでに持っているコードです:

初め:

Public Sub New()
    ' This call is required by Windows Form Designer
    InitializeComponent()
    ' Add any initialization after the InitializeComponent() call
    AssignImagesToSquares()
End Sub

Private random As New Random

Private images =
    New List(Of Image) From {My.Resources.Aeroplane, My.Resources.Bicycle, My.Resources.Beginner_button, My.Resources.Bird, My.Resources.Butterfly,
                             My.Resources.Cartoon_Background_Wallpaper_719574, My.Resources.cartoon_farm, My.Resources.Clock, My.Resources.Egg_Timer,
                             My.Resources.Moderate_background, My.Resources.Tree, My.Resources.Umbrella, My.Resources.Woman}

Private Sub AssignImagesToSquares()

    For Each Control In TableLayoutPanel1.Controls
        Dim imageLabel = TryCast(Control, PictureBox)
        If imageLabel IsNot Nothing Then
            Dim randomNumber = random.Next(images.Count)
            imageLabel.Image = images(randomNumber)
            images.RemoveAt(randomNumber)
        End If
    Next
End Sub

 Private Sub picturebox_clicked(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox2.Click,
    PictureBox1.Click

    Dim clickedLabel = TryCast(sender, PictureBox)

    If clickedLabel.Image Is My.Resources.Butterfly Then
        MsgBox("This is incorrect")
        AssignImagesToSquares()
    Else
        AssignImagesToSquares()
    End If
End Sub

コードは順番に書かれています。Visual Basic 2010 Express を使用します。詳細が必要な場合はお知らせください。ここで必死です!!

基本的に、画像の繰り返しを停止し、エラーが表示されないようにするにはどうすればよいですか。また、エラーは発生しませんが、蝶の画像をクリックしてもメッセージ ボックスが表示されません。

4

3 に答える 3

1

10 枚の画像を並べてシャッフルし、一度に 2 枚を 5 回選択します。

于 2013-07-07T12:52:45.967 に答える