2016-03-22 18 views
1

Mevcut oyun döngüsü için tahminin sıra sayısını 1'e kadar arttırmak istiyorum. İlk başta 0 değerini belirledim ancak 1 'dan sonra güncellenmiyor. Aynı şey trys için de geçerli. i 21 ° C'da değeri de belirledik ama en kısa zamanda 20'ye kadar günceller ama senin Düğme olay işleyicisi oVB'de değişkenlerin güncellenmesi

Option Strict On 
Option Explicit On 
Public Class Form1 
    Private ReadOnly rand As New Random 
    Private value As Integer 

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 

     Me.value = rand.Next(minValue:=1, maxValue:=30) 

    End Sub 

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click 
     Dim guess As Integer  'guess number 
     Dim numTry As Integer  'No. of trys 
     Dim RandNo As Integer  'Random Number 
     Dim OrdNo As Integer  'Ordinal Number 
     Dim Score As Integer  'Score 

     Score = 0 'Initial value of score set as 0 
     OrdNo = CInt(1) 'Initial value of ordinal set as 1 
     numTry = CInt(21) 
     guess = CInt(TextBox1.Text) 
     OrdNo = +1 
     Label5.Text = CStr(OrdNo) 

     'Show Message Box if the guess is not within the range 
     If 1 > guess Then 
      MessageBox.Show("Input within the range (1-30)", "Error", MessageBoxButtons.OK) 
      Exit Sub 
     End If 

     'Show Message Box if the guess is not within the range 
     If guess > 30 Then 
      MessageBox.Show("Input within the range (1-30)", "Error", MessageBoxButtons.OK) 
      Exit Sub 
     End If 

     'Display result and message when guess is larger than the lucky number 
     If guess > Me.value Then 
      Label11.Text = CStr(guess) 
      Label10.Text = "The Lucky Number is smaller than your guess" 
      OrdNo = OrdNo + 1 
      Label5.Text = CStr(OrdNo) 
      numTry = numTry - 1 
      Label4.Text = CStr(numTry) 
     End If 

     'Display result and message when guess is smaller than lucky number 
     If guess < Me.value Then 
      Label11.Text = CStr(guess) 
      Label10.Text = "The Lucky Number is larger than your guess" 
      OrdNo = OrdNo + 1 
      Label5.Text = CStr(OrdNo) 
      numTry = numTry - 1 
      Label4.Text = CStr(numTry) 

     End If 

     'Display result and message when guess is equal to the lucky number 
     If guess = Me.value Then 
      Label11.Text = CStr(guess) 
      Label10.Text = "Congratulations ! This is the lucky number" 
      Score = +10 'Increase the score by 10 
      Label6.Text = CStr(Score) 
      numTry = numTry - 1 
      OrdNo = 1 
      Me.value = rand.Next(minValue:=1, maxValue:=30) 

      If numTry = 0 Then Application.Exit() 

     End If 

    End Sub 

End Class 
+2

Ve ne:

İkincisi

, bir yöntem bloğunun kapsamı dışında aynı şekilde, sadece bir kez rastgele bir değer saklamak değeri ve işin atar tamsayı değişken bildirmek senin sorunun? Ne kadar hata yapıyorsun? Ne işe yaramıyor? – Claudius

+1

Sanırım rakamın doğru olduğunu tahmin edene kadar her zaman aynı olmasını istiyor, ancak bu koda bakmadan, yanlış tahmin edildiğinde rastgele sayıyı değiştireceğini tahmin ediyorum. – Werdna

+0

Lütfen hata ayıklamayı öğrenin .. – cybermonkey

cevap

2

sonra, RandNo hep Sıfır olduğunu. Form Yükü olay işleyicide bildirilen RandNo adıyla aynı değişkenin kullanım ömrünün yalnızca bu yönteme ait olduğunu göz önünde bulundurun.

şu adımları izleyin Bunu önlemek için: (isteğe bağlı olarak ama)

İlk, sadece bir kez başlatmak için sağlamak, Random Class kullanmak (MSDN belgelerinde açıklandığı şekilde, aksi takdirde sayıları tekrarlanan alabilirsiniz).

Public Class Form1 

    Private ReadOnly rand As New Random 
    Private value As Integer 

    Private Sub Form1_Load() Handles MyBase.Load 

     Me.value = rand.Next(minValue:=0, maxValue:=100) 

    End Sub 

    Private Sub Button1_Click() Handles Button1.Click 
     ' Do what you want with Me.value 
     '... 
    End Sub 

End Class 
+0

Tam anlamıyorum. hala hiçbir şey üretmiyor. tekrar yapabilir misin? –

+0

https://www.dropbox.com/s/a9w9ckp3ffwds9i/asg1_test.exe?dl=0 Böyle bir oyun yapmak istiyorum. Kodu değiştiriniz lütfen –

+2

Üzgünüz ama Hayır, projeyi işinizi yapmaya indirmeyeceğim !, nasıl yapabileceğinizi anlamanıza yardımcı olmak için buradayız, ana problemi nasıl çözebileceğinizi açıkladım, Şüpheniz varsa, şüpheleriniz için somut bir şekilde sorun. Sorunuzu, oluşturduğunuz koddaki gelişmeleri eklemek ve gösterdiğim kodla ilgili herhangi bir sorunu açıklamak için güncelleyebileceğinizi unutmayın. – ElektroStudios

İlgili konular