我是新來編程,我試圖在C#中建立一個模具滾子游戲。模具輥與用戶選擇邊數
該程序詢問用戶的邊數,然後用隨機數擲骰子。
我有以下的僞代碼:
- 詢問用戶邊數。
- 用隨機數滾動模具,最大範圍是邊的數量。
- 告訴數量軋
我的問題,用戶是我怎麼搖船產生由用戶指定範圍內的隨機數骰子?
我是新來編程,我試圖在C#中建立一個模具滾子游戲。模具輥與用戶選擇邊數
該程序詢問用戶的邊數,然後用隨機數擲骰子。
我有以下的僞代碼:
我的問題,用戶是我怎麼搖船產生由用戶指定範圍內的隨機數骰子?
System.Random
類通常用於生成隨機隨機數。
它有一個名爲Next
的方法的重載,它會生成一個大於或等於0
的隨機整數,並嚴格小於傳遞的整數參數。
因此,如果用戶選擇了一個n
-sided模具,你必須的Random
r
一個實例,
r.Next(n) + 1
將生成1
和n
包容之間的隨機整數。
創建一個Random
的單個實例並重用它是一種很好的做法,因爲如果您將多個實例關在一起,它們都會生成相同的數字。
如果你有一個6個骰子,擲出一個6,然後加上1 - 在Random.Next(n)+ 1'的情況下,你會有7個?' – LukeHennerley
'r.Next(n)'將在'0 ''和'n-1'包含在內 - 所以'r.Next(6)'將在'0'和'5'之間生成 – Rawling
我明白了!我會想通過在超載中指定'Max'值將會得到'n'作爲最高的一個,但是讀取它所聲明的重載方法 - '返回一個小於指定的最大值的非負的隨機數 – LukeHennerley
要獲得0與100不包含之間和100的隨機整數:
Random random = new Random();
int randomNumber = random.Next(0, 100);
public int RollDice(int iNoSides)
{
var rand = new Random();
return rand.Next(iNoSides) + 1
}
的random number c#
一個簡單的谷歌會的得到你或多或少這個確切的代碼。
編輯
你有鏈接從其他的答案和評論MSDN文檔,我知道你的新的編程,但最好的學習方法就是儘量努力,你可以得到的東西。如果你得到這樣一種狀態:你的心無法運行任何更多,發佈與堆棧你的問題的嘗試會使人通常很多快樂,他們是真正幫助別人也就是卡住
EDIT 2
按照@ Rawling的評論,我意識到該方法的超負荷狀態表示Next(n)
返回Non-negative number less than the specified maximum
。
如果用戶輸入'6',這將在'0'和'5'之間返回一個nubmer。另外,如果在緊密循環中調用它,它將重複地返回相同的數字。 – Rawling
@Rawling感謝您指出了這一點! – LukeHennerley
謝謝,我做了Google的一些關鍵詞,包括「隨機骰子C#」,但不是「隨機數字C#」。我猜想關鍵是從更簡單的搜索開始,到更復雜的問題。 –
System.Random,特別是System.Random.Next(Int32, Int32)應該讓你開始。
Random.Next(Int32, Int32)
Returns a random number within a specified range.
[Random.Next(int,int)](http://msdn.microsoft.com/en-us/library/2dx6wyd4.aspx) –
你基本上問的是如何獲得一個隨機數一定範圍內。看看「隨機」類。 –