0

じゃんけんゲームを作成しています。プレーヤーが終了を選択するまでコードをループする必要があります。どうすればこれを達成できますか。

Imports System.Random

Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Label3.Visible = False
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim a As New Random()
        Dim b As Integer = a.Next(1, 3)
        Dim played As Integer = 0
        Dim won As Integer = 0
        Dim lost As Integer = 0
        Dim draw As Integer = 0
        Dim percent As Single = 0.0

        If b = 1 Then
            Label3.Text = "Rock"
            Label3.Visible = True

            Select Case ComboBox1.SelectedIndex
                Case ComboBox1.SelectedIndex = 1
                    MsgBox("Draw.")
                    draw += 1
                Case ComboBox1.SelectedIndex = 2
                    MsgBox("Paper Covers Rock. You win!")
                    won += 1
                Case ComboBox1.SelectedIndex = 3
                    MsgBox("Rock Crushes Scissors. You lose.")
                    lost += 1
            End Select

        ElseIf b = 2 Then
            Label3.Text = "Paper"
            Label3.Visible = True

            Select Case ComboBox1.SelectedIndex
                Case ComboBox1.SelectedIndex = 1
                    MsgBox("Paper Covers Rock. You lose.")
                    lost += 1
                Case ComboBox1.SelectedIndex = 2
                    MsgBox("Draw.")
                    draw += 1
                Case ComboBox1.SelectedIndex = 3
                    MsgBox("Scissors Cuts Paper. You win!")
                    won += 1
             End Select

        ElseIf b = 3 Then
            Label3.Text = "Scissors"
            Label3.Visible = True

            Select Case ComboBox1.SelectedIndex
                Case ComboBox1.SelectedIndex = 1
                    MsgBox("Rock Crushes Scissors. You win!")
                    won += 1
                Case ComboBox1.SelectedIndex = 2
                    MsgBox("Scissors Cuts Paper. You lose.")
                    lost += 1
                Case ComboBox1.SelectedIndex = 3
                    MsgBox("Draw.")
                    draw += 1
            End Select

        End If

        played += 1
        percent = won / played

        PlayedText.Text = played.ToString
        WonText.Text = won.ToString
        LostText.Text = lost.ToString
        DrawText.Text = draw.ToString
        PercentText.Text = percent.ToString


    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Me.Close()
    End Sub
End Class
4

2 に答える 2

0

これが必要かどうかはよくわかりません。また、あなたがwinformsに取り組んでいると仮定しています。私は c# でコードを書きましたが、それを vb.net に変換することはそれほど難しいことではありません。

OnMouseDownイベントのイベントハンドラはMouseEventArgs、左ボタンが押されたかどうかを通知する を受け取る必要があります。ただし、これを終了するには条件も作成する必要があります。たとえば、ブール変数を作成してisMouseDown、最初に true に設定します。次に、MouseUpイベントが発生したら、それを false に設定します。また、内部で false の場合は true に設定しますmouseDownEventHandler。例は以下の通りです。

私はそれをテストしていませんので、そうしてください。

bool isMouseDown = true;

private void mouseDownEventHandler(object sender, MouseEventArgs e)
{
   if(!isMouseDown)
       isMouseDown = true;

   if(e.Button == MouseButtons.Left)
   {
     //do left stuff
     if(isMouseDown)
     {
         //Call mouseDownEventHandler again
     }
   }
   else 
   {
     // do other stuff
   }
}

private void mouseUpEventHandler(object sender, MouseEventArgs e)
{
   isMouseDown = false;
}

お役に立てれば。

于 2014-03-11T04:27:39.230 に答える