2016-09-30 138 views
0

我目前正在學校隨機數猜測遊戲。這只是我第二週的節目,所以這項任務對我來說至少是一個挑戰。我想我已經把所有東西都放下了,除了我的循環必須在某個地方被打破(我找不到它!),因爲它從來沒有識別出正確的答案 - 只是指出每個猜測都是錯誤的。我做了什麼??我希望你能幫助我:)非常感謝!麻煩猜測數字遊戲在C#

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace Assn3_2 
{ 
class Program 
{ 
    public static int SelectedNumber = 0; 
    public static Random ran = new Random(); 
    public static bool GameOver = false; 
    public static int UserMaxValue = 0; 



    static void Main(string[] args) 
    { 
     int UserNumber; 
     SelectedNumber = ran.Next(0, UserMaxValue); 

     do 
     { 
      Console.WriteLine("What is the maximum number you want to guess from?"); 
      UserMaxValue = Convert.ToInt32(Console.ReadLine()); 

      do 
      { 

       Console.WriteLine("Please make a guess between 1 and {0}", UserMaxValue); 
       UserNumber = Convert.ToInt32(Console.ReadLine()); 
       GuessNumber(UserNumber); 

      } while (GameOver == false); 
     } while (GameOver == false); 
    } 

    public static void GuessNumber(int UserNumber) 

    { 
     int playagain = 0; 

     if (UserNumber < SelectedNumber) 
      Console.WriteLine("Wrong. Please try again."); 
     else if (UserNumber > SelectedNumber) 
      Console.WriteLine("Wrong.Please try again."); 
     else 
     { 
      Console.WriteLine("Correct! The number is {0}. Again? (1 or 2)"); 
      playagain = Convert.ToInt32(Console.ReadLine());; 

      while (playagain != 1 && playagain !=2) 
      { 
       Console.WriteLine("Invalid answer. Again? Y or N"); 
       playagain = Convert.ToInt32(Console.ReadLine()); 
      } 

      if (playagain.Equals(2)) 
       GameOver = true; 

      else 
       SelectedNumber = ran.Next(0, UserMaxValue); 
     } 


    } 
} 


} 
+3

好的,你寫了一些代碼。現在,該調試它了。設置斷點,檢查變量並觀察代碼逐行執行。 – Plutonix

+0

我想它一定是錯誤的。 –

回答

1

此:

SelectedNumber = ran.Next(0, UserMaxValue); 

運行此之前您提示用戶在UserMaxValue值來填充,這樣有效地你做

SelectNumber = ran.Next(0, 0); 

不是很隨意,當只有一個選擇,並且該選擇是0 ...尤其是當您只允許在1和t之間的猜測他以後得到的最大值。

+0

非常感謝Marc B!我做了這個改變,並創建了一個除「0」以外的隨機數! 現在,我唯一的問題是不是循環回到我的第一個'do'語句(設置最大值),我的程序只是要求用戶在相同的值範圍內進行猜測。有沒有人有任何建議或提示如何改變? –

+0

@VictoriaN這個問答是否會重複,直到您修復所有錯誤?請一次提出一個問題.... –

+0

而這不是一項調試服務。 ** MOST **學習如何編碼的重要部分是學習如何調試。如果你甚至不想自己想辦法,你什麼都不會學。 –