2015-04-28 2 views
-1

Я бегу кругами, пытаясь получить этот бит кода, который я написал, чтобы просто добавить сумму ставки, запустить цикл и добавить сумму ставки и т. Д. Если вы проиграете, добавьте ее в потеря метки, цикл и, наконец, отслеживать количество раз, когда вы делаете ставку.Vb program loop с вложенными операциями if

Можете ли вы помочь мне выправить это?

Option Strict Off 
Public Class RaceSeries 
    ' declare variables 
    Const intMAX_INDEX As Integer = 0 
    Dim intBetValue As String 
    Dim intBetValue2 As String 
    Dim intRacerNum As String 
    Dim Count As Integer 
    Dim intNum As Integer 
    Dim rand As New Random 
    Dim decGuess As Decimal 
    Dim intBet As Integer 
    Dim blnFlag1 As Boolean 
    Dim blnFlag2 As Boolean 

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnBack.Click 
     Me.Close() 
    End Sub 

    Private Sub btnBetOnRace_Click(sender As Object, e As EventArgs) Handles btnBetOnRace.Click 
     'activate sound clip 
     My.Computer.Audio.Play(My.Resources.FlyBy, 
         AudioPlayMode.Background) 

     'verify Input() Is numeric and get bet amount 
     intBetValue = InputBox("How much would you like to bet?") 

     If IsNumeric(intBetValue) Then 
      MsgBox("You are betting " & CInt(intBetValue).ToString("C")) 
      blnFlag1 = True 
     Else 
      MsgBox("You provided an invalid value") 
      blnFlag1 = False 
     End If 
    End Sub 

    Private Sub btnPick_Click(sender As Object, e As EventArgs) Handles btnPick.Click 
     ' verify input and get racer number 
     intRacerNum = InputBox("Choose the racer you would like to bet on") 

     If IsNumeric(intRacerNum) And intRacerNum < 7 And intRacerNum >= 1 Then 
      MsgBox("You have picked racer # " & CInt(intRacerNum).ToString) 
      blnFlag2 = True 
     Else 
      MsgBox("Choose a racer # 1-6") 
      blnFlag2 = False 
     End If 
    End Sub 

    Private Sub btnStart_Click(sender As Object, e As EventArgs) Handles btnStart.Click 
     If blnFlag1 And blnFlag2 = True Then 
      Do While Count <= intMAX_INDEX 
       Count += 1 

       'get a random integer and assign it to intnum 
       intNum = rand.Next(6) 

       If intNum <> intRacerNum Then 
        intBetValue = intBetValue * Count 
        lblLost.Text = intBetValue 
        MsgBox("Your Rider Lost The Race") 
        lblDailyBets.Text = Count 
        Exit Do 
       ElseIf intNum = intRacerNum Then 
        intBetValue = intBetValue * Count 
        lblLost.Text = intBetValue 
        lblWinnings.Text = intBetValue 
        MsgBox("Congratulations, Your Rider Won The Race") 
       End If 
       lblDailyBets.Text = Count 
      Loop 
     Else 
      MsgBox("You must enter a bet and pick a racer") 
     End If 
    End Sub 
End Class 
+1

Только этот вариант «Strict Off» заставляет меня уйти от этого quesiton. – Eminem

+0

Предполагается, что IntMAX_INDEX установлен на что-то отличное от нуля? – ChicagoMike

+0

У меня было установлено 3 одновременно, а msgbox, который сказал «это гонка 3 серии» – corvette1

ответ

1

Проблемы возникают, как представляется, в событии btnStart_Click().

Переменная intMAX_INDEX не установлена. Если эта переменная установлена ​​на что-либо большее, чем ноль, вы будете проходить через несколько гонок каждый раз, когда вы нажимаете кнопку запуска (это может быть то, что вы хотите, или нет).

Кроме того, вы умножаете сумму выигрыша и сумму потерь на счет. Стараетесь ли вы, чтобы каждая гонка была на несколько больше, чем предыдущая гонка? Если нет, вы не должны умножать сумму ставки на счет.

Кроме того, вы переписываете свои значения выигрышей и потерь после каждой гонки, что делает недействительными выигрыши/потери предыдущей гонки. Если вы пытаетесь сохранить текущую сумму, вам нужно добавить в существующую сумму выигрышей/убытков, как это:

lblWinnings.Text = CInt(lblWinnings.Text) + intBetValue 

Наконец, я уверен, что rand.Next(6) генерирует числа в диапазоне от 0 до 5, но никогда не вернет номер 6. Поскольку ваш пользователь выбирает номер от 1 до 6 включительно, вы должны установить intNum = rand.Next(6)+1.

+0

благодарим вас за ввод и да случайное число, которое использовалось для того, чтобы иметь +1, но в конце концов удалилось в какой-то момент, а затем перестроило – corvette1

+0

Итак, я начал и написал его, как предлагалось руководство по отладке, и оно отлично работает. Благодарю. – corvette1

Смежные вопросы