2013-10-23 26 views
1

我確信這是微不足道的,但我無法弄清楚。我的老師向我們展示瞭如何使用.Next()創建隨機數。聲明昨天晚上,我被告知寫一個任務,刺激兩個骰子卷並比較它們。我寫了代碼,一切正常,直到我添加到我的console.writeline dice2。我在這裏錯過了什麼?試圖讓一個基本的骰子程序工作時出錯

一旦我添加了dice2,我得到了以下錯誤,當我移除dice2時它們全都消失。

  1. )預計
  2. ;預期
  3. 無效的表達式項')'
  4. 只能將賦值,調用,增量,減量,等待和新對象表達式用作語句。

這裏是我的代碼

Random m = new Random(); 
Random m1 = new Random(); 
string again; 

do 
{ 

    int dice1 = m.Next(1, 6); 
    int dice2 = m1.Next(1, 6); 

    if (dice1 == 6 && dice2 == 6) 
    { 
     Console.WriteLine("You rolled boxcars"); 
    } 
    else if (dice1 == 1 && dice2 == 1) 
    { 
     Console.WriteLine("You rolled snake-eyes"); 
    } 
    else 
    { 
     Console.WriteLine("You rolled a {0} and a {1}", dice1 dice2); 
    } 
     Console.WriteLine("Again? (y/n)"); 
    again = Console.ReadLine(); 

} while (again == "y"); 

編輯

加入我注意到,我得到了相同的值的逗號後這樣做了一些研究之後,我刪除了隨機M1 =新的隨機();並更改int dice2 = m1.Next(1,6);到int dice2 = m.Next(1,6);它的工作。後來我意識到,它不給我任何6個值,所以我把它改爲(1,7)和它的工作完美

+0

因爲你創建兩個「隨機」實例同時它們幾乎總是具有相同的種子,因此會生成完全相同的隨機數序列,因此您的兩個值將始終匹配。與其創建兩個隨機數字生成器並從每個數字生成一個值,只需創建一個隨機數字生成器並向其請求兩個隨機數字。 – Servy

+0

是的,我剛剛注意到了。我刪除了隨機m1 =新隨機();並更改int dice2 = m1.Next(1,6);到int dice2 = m.Next(1,6);它的工作完美。然後我意識到它沒有給我任何6個值,所以我將它改爲(1,7)並且它完美地工作。 – user2781666

回答

2

你錯過了在這條線上dice1dice2之間的逗號:

Console.WriteLine("You rolled a {0} and a {1}", dice1 dice2); 

應該是:

Console.WriteLine("You rolled a {0} and a {1}", dice1, dice2); 
+0

哇,我覺得非常愚蠢的錯過了。我嘗試了兩次重寫代碼,但無法弄清楚。謝謝一堆 – user2781666

3

你缺少一個逗號:

Console.WriteLine("You rolled a {0} and a {1}", dice1, dice2); 
//             ^^^