2016-02-14 101 views
-1

我在這個錯誤上花了近一個小時,我似乎無法找到我出錯的地方(新的一組眼睛可能會幫助大聲笑)。這是{array = Random.genRandom();}我也得到名稱rand不存在於我的MainClass的上下文。在那裏它說'也爲我的構造函數得到一個錯誤,我基本上只是做一個隨機數字生成器遊戲,其中的數字顯示在開始,人可以得到一個罷工,球等等,對於錯誤的答案。我有兩個班。一個主類和一個子類。System.Random不包含定義.... C#?

MainClass:

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

namespace NumBaseBall 
{ 
    class MainClass 
    { 
     static void Main(string[] args) 
     { 
      int[] player; 
      int[] array; 
      int NumberOfTries = 0; 
      int Strikes = 0; 
      int ball = 0; 
      int input; 
      int count = 0; 
      int g = 0; 
      decimal game = 0; 
      decimal wins = 0; 
      decimal percent = 0; 
      int Ru = 0; 



      Console.WriteLine("Welcome to Number Baseball Game"); 
      Console.WriteLine("By: "); 


      while (Ru != -1) 
      { 
       Console.WriteLine("The three Digit random number is: \t"); 

       MethodClass = rand = new MethodClass(); 

       array = Random.genRandom(); 
       Console.WriteLine(); 

       NumberOfTries = 0; 

       game++; 

       while (NumberOfTries < 5) 
       { 

        ball = 0; 
        Strikes = 0; 

        Console.Write("Enter three digit number: \t"); 
        input = Convert.ToInt32(Console.ReadLine()); 

        player = MethodClass.splitNumber(input); 

        for (int i = 0; i < 3; i++) 
        { 
         count = 0; 

         if ((player[i] == array[g]) && (count == 0)) 
         { 
          if (player[0] == array[0]) 
          { 
           Strikes++; 
          } 

          else 
          { 
           ball++; 
          } 
          count++; 

         } 

         else if ((player[i] == array[g + 1]) && (Strikes == 0)) 
         { 
          if (player[2] == array[2]) 
          { 
           Strikes++; 
          } 
          else 
          { 
           ball++; 
          } 
         } 
         if (Strikes == 3) 
         { 
          Console.WriteLine("Goodjob! You guessed the random number!"); 
          wins++; 
          continue; 

         } 
         else if (Strikes == 0 && ball == 0) 
         { 
          Console.WriteLine("0 Strikes, 0 ball"); 
         } 
         else if ((Strikes > 0 && Strikes < 3) || (ball > 0)) 
         { 
          Console.WriteLine("{0} Strikes and {1}", Strikes, ball); 
         } 
         NumberOfTries++; 
        } 
        if (Strikes == 0) 
        { 
         Console.WriteLine("\nYou lost!"); 
        } 
        percent = (wins/game) * 100; 

        Console.WriteLine("Total amount played: {0}, Number of wins: {1}, Winning Percentage: {2:F2}", 
           game, wins, percent); 
        Console.WriteLine("Press Enter to exist"); 
        Console.ReadLine(); 
       } 
      } 

     } 
    } 
} 

MethodsClass:

//Mohamed Shire 



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

namespace NumBaseBall 
{ 
    class MethodClass 
    { 
     int[] random = new int[3]; 


     public int[] genRandom() 
     { 
      int my; 
      Random rand = new Random();  
      for (int i = 0; i < random.Length; i++) 
      { 
       my = rand.Next(1, 10); 
       if (isExists(random, my) == false) 
       { 
        random[i] = my; 
        Console.Write(random[i]); 
       } 
       else 
       { 
        i--; 
       } 
      } 
      return random; 


     } 

     public bool isExists(int[] array, int my) 
     { 
      for (int i = 0; i < array.Length; i++) 
      { 
       if (array[i] == my) 
       { 
        return true; 

       } 
      } 

      return false; 
     } 

     public static int[] splitNumber(int input) 
     { 
      int[] uInput = new int[3]; 
      uInput[0] = input/100; 
      uInput[1] = input % 100/10; 
      uInput[2] = input % 100 % 10; 
      return uInput; 

     } 

     public static void outputArray(int[] array) 
     { 
      for (int i = 0; i < array.Length; i++) 
      { 
       Console.WriteLine(array[i]); 
      } 

     } 


    } 


} 
+1

請閱讀[this](https://stackoverflow.com/help/mcve)並嘗試將您的代碼修剪爲可重現此問題的較小示例。這樣做你可能會爲自己解決問題。 –

+0

使用['int.TryParse()'](http://stackoverflow.com/a/199484/380384)確保程序順利流動後,檢查「ENTER」。 – ja72

回答

0

嘗試修改此:

MethodClass = rand = new MethodClass(); 

array = Random.genRandom(); 

到:

MethodClass rand = new MethodClass(); 

array = rand.genRandom(); 
+0

嘿,只是一個簡單的問題:我想要一個提示,當玩家擊中0時,遊戲重新開始,當他們輸入時,它終止。這裏是我所擁有的:'Console.Write(「繼續播放,點擊0:退出遊戲點擊輸入。繼續輸入除-1之外的任何數字:」);' – JavaStudent22

+0

我知道我可以使用Convert.ToInt32 '爲0,但是他們什麼時候碰到ENTER退出? – JavaStudent22