2014-03-13 3 views
1

저는 Rock-Paper-Scissors 게임을 쓰고 ComboBox를 사용하여 사용자의 선택을 얻어야합니다. 문제는 내가 무엇을 선택하든, 선택된 색인은 항상 1로 되돌아 가고, 따라서 사용자는 항상 바위를 선택한다는 것입니다. 이 문제를 어떻게 해결할 수 있습니까?VB.Net ComboBox.SelectedIndex는 항상 1로 되돌아갑니다.

Imports System.Random 

Public Class Form1 
    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 


    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, 4) 
     Dim selection As Integer 
     ComboBox1.SelectedIndex = selection 

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

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

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

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

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

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

     End If 

     played += 1 
     percent = (won/played) * 100 

     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 

답변

1

난 당신이

Dim selection As Integer 
    selection = ComboBox1.SelectedIndex 

과 SELECT 구문에이 라인을 변경할 필요가 있다고 생각 .... CASE가

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

완벽합니다. 0 1 2로 변경해야했지만 작동합니다. 고맙습니다. – user3389547

관련 문제