2016-01-18 71 views
-1

我堅持用隨機函數,因爲我不知道如何把它在我的代碼的Visual Basic劊子手隨機函數

下面的代碼是在PLAYBUTTON ..按鈕

Dim number As Integer 
number = Int(Rnd() * ListBox1.Items.Count - 1) + 1 
Word = ListBox1.Items(number)'Word is a string and it holds the word to be guessed 

這是我寫的... 這種方式,它的工作正常,但是當遊戲開始時,它始終以相同的單詞開始...具體運行:P

即使它繼續隨機單詞那些隨機單詞有時重複2次甚至3次(大多數是2次) ...

(我也有列表框裏面10個字,運行是其中之一)

好了,我不希望它開始與字每次運行:L

+1

使用閃亮的新NET'Random'代替傳統VB'Rnd'功能的類...或者使用'Randomize'在選擇之前 – Plutonix

+0

含義? xD sry如果我聽起來很新鮮:P –

+1

點擊右邊的** Related **下的任何鏈接。當然,你不認爲這是一個新的和獨特的問題? – Plutonix

回答

1

你可以查找隨機類here的信息。

作爲一個快速的使用提示,你可能會希望有在班級開始定義的類級屬性:

Private _rand As New Random() 

然後當你檢索你會做一些這樣的下一個隨機值:

number = _rand.Next(ListBox1.Items.Count) 

這將在0範圍內返回數(ListBox1.Items.Count -1)

+1

每次啓動vb.net時,用於生成下一個隨機數(使用rnd函數)的種子號總是相同的。在@NathanC的答案中使用代碼時,vb.net在聲明_rand時根據當前系統時間設置種子編號。我應該指出_rand的初始聲明只能在程序開始時執行一次。如果你在使用它的地方附近聲明它,並且在不到一秒的時間內使用它幾次,你將會多次獲得相同的隨機數。 –

+0

WOW .. DAMN ..我就是這樣一個NOOB ......我已經知道了......但是,我忘了這很容易,因爲現在我正在學習很多語言,在完成大學學習之後,我會喜歡只用一種語言,所以我不會用100(誇張的c:P)誇大我的思想存在的語言...所以非常感謝你..這完全是我的問題xD的答案:D ...不能夠多謝:D –

+0

沒問題。祝你好運 –