none
猜數字遊戲疑問 RRS feed

  • 問題

  • Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _ System.EventArgs) Handles Button1.Click

    Dim aValue, gValue, tValue As Integer

    aValue = Now.Minute * 60 + Now.Second <<<<為什麼這串文字可以變成猜數字呢,不懂

    TryAgain:

    gValue = CInt(InputBox("請輸入一個數字"))

    tValue += 1

    If aValue <> gValue Then

    If aValue > gValue Then MsgBox("再大一點")

    If aValue < gValue Then MsgBox("再小一點")

    GoTo TryAgain

    Else

    MsgBox("猜對了,是" & aValue & vbCrLf & "總共猜了" & tValue _ & "")

    End If

    End Sub

    2008年12月10日 下午 02:13

解答

  • 1. 請勿使用注音文,這是網路的基本禮貌。

    2. 它是一開始取出一個隨機的數字,而不是每次都取,例如:

     

    12:39 -> (12 * 60) + 39 = 759

    07:01 -> (7 * 60) + 1 = 421

     

    若這樣你看不懂,可以直接用:

     

    Code Snippet

    Dim rnd As New Random()

    Dim aValue As Integer = rnd.Next(100, 999) ' 取 100~999 之間的任一數字。

     

     

    但基本上這個程式使用了 goto,真正在寫程式時是最好不要用,用 while 迴圈會比較好一點。

     

    2008年12月11日 上午 02:46
    版主

所有回覆

  • 猜數字總要隨機產生個亂數來猜阿
    該程式的作者就用目前時間的分乘60加上秒當成被猜的數字
    Now.Minute取得當前的分
    Now.Second取得當前的秒
    2008年12月10日 下午 02:37
  • 照你這樣講,那時間會亂跑ㄟ

    那怎麼會有準確的數字呢。

    2008年12月10日 下午 11:58
  • 1. 請勿使用注音文,這是網路的基本禮貌。

    2. 它是一開始取出一個隨機的數字,而不是每次都取,例如:

     

    12:39 -> (12 * 60) + 39 = 759

    07:01 -> (7 * 60) + 1 = 421

     

    若這樣你看不懂,可以直接用:

     

    Code Snippet

    Dim rnd As New Random()

    Dim aValue As Integer = rnd.Next(100, 999) ' 取 100~999 之間的任一數字。

     

     

    但基本上這個程式使用了 goto,真正在寫程式時是最好不要用,用 while 迴圈會比較好一點。

     

    2008年12月11日 上午 02:46
    版主
  • 謝謝你我知道了

     

     

    2008年12月11日 上午 10:17