ciao a tutti, sto cercando di fare un gioco con vb dove chi clicca per primo, dopo il segnale (un picture box che diventa verde, dopo un numero random di tempo trascorso), vince.
codice:
Public Class Form1
    Dim a As Integer
    Dim b As Integer = 0
    Dim p1 As Boolean = False
    Dim p2 As Boolean = False
    Dim v As Boolean = False
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim a1 As New System.Random
        a = a1.Next(3, 9)
        Timer1.Start()

    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        b += 1
        If b = a Then
            PictureBox3.BackColor = Color.LawnGreen
            v = True
        End If
    End Sub

    Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
        'payer 1
        If e.KeyCode = Keys.Left Then
            'se è partito 
            If v = True Then
                'se è attivato l'altro 
                If p1 = True Then
                    ' se non è attivato l'altro
                ElseIf p1 = False Then
                    p2 = True
                    PictureBox1.BackColor = Color.LawnGreen
                End If
                'se non è partito 
            ElseIf v = False Then
                Timer1.Stop()
                PictureBox3.BackColor = Color.Silver
                Label1.Text = "FALSA PARTENZA"
                a = 0
                b = 0
            End If

            'player 2
        ElseIf e.KeyCode = Keys.Right Then
            'se è partito
            If v = True Then
                'se l'altro è attivato
                If p2 = True Then
                    'se non è attivato l'altro
                ElseIf p2 = False Then
                    p1 = True
                    PictureBox2.BackColor = Color.LawnGreen
                End If
                'se non è partito
            ElseIf v = False Then
                Timer1.Stop()
                PictureBox3.BackColor = Color.Silver
                Label1.Text = "FALSA PARTENZA"
                a = 0
                b = 0
            End If
        End If
    End Sub
End Class
questo è il programma, funziona fino a far diventare verde il picturebox3 , dopo, indipendentemente da che pulsante viene premuto e quando, non succede più niente. non vorrei aver sbagliato a scrivere questa parte:
codice:
Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
        If e.KeyCode = Keys.Left Then
        'comandi 
        end if
comunque so quasi per certo che l'errore sta qua:

codice:
Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
        'payer 1
        If e.KeyCode = Keys.Left Then
            'se è partito 
            If v = True Then
                'se è attivato l'altro 
                If p1 = True Then
                    ' se non è attivato l'altro
                ElseIf p1 = False Then
                    p2 = True
                    PictureBox1.BackColor = Color.LawnGreen
                End If
                'se non è partito 
            ElseIf v = False Then
                Timer1.Stop()
                PictureBox3.BackColor = Color.Silver
                Label1.Text = "FALSA PARTENZA"
                a = 0
                b = 0
            End If

            'player 2
        ElseIf e.KeyCode = Keys.Right Then
            'se è partito
            If v = True Then
                'se l'altro è attivato
                If p2 = True Then
                    'se non è attivato l'altro
                ElseIf p2 = False Then
                    p1 = True
                    PictureBox2.BackColor = Color.LawnGreen
                End If
                'se non è partito
            ElseIf v = False Then
                Timer1.Stop()
                PictureBox3.BackColor = Color.Silver
                Label1.Text = "FALSA PARTENZA"
                a = 0
                b = 0
            End If
        End If
    End Sub
consigli ?
più di così non so che dire