2015-02-07 87 views
-6

在我正在工作的項目中,我必須匹配yahtzee的5個數字。所有這些數字都必須相同。現在我已經想過如何做到這一點,但我不確定最好和最簡單的方法。當然,我可以全部寫出來,但必須有一個更短的路。c#最好的方式來匹配yahtzee

我還沒有編寫檢查yahtzee是否被拋出的部分的代碼。這是因爲我只能想出一種方法,那就是全部寫出來。

這裏是到目前爲止我的代碼:

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

namespace Opdr3 
{ 
    class Program 
    { 
     struct YahtzeeGame 
     { 
      public int[] dobbelstenen; 
      public Random rnd; 

      public void Gooi() 
      { 
       for (int i = 0; i < 5; i++) 
       { 
        dobbelstenen[i] = Int32.Parse(rnd + ""); 
       } 
      } 

      public bool Yahtzee() 
      { 
       Here it has to check if all dobbelstenen[int] 
       are the same 
      } 
     } 
     static void Main(string[] args) 
     { 
      // maak YahtzeeGame (struct) aan 
      YahtzeeGame yahtzeeGame; 

      // initialiseer struct-members 
      yahtzeeGame.rnd = new Random(); 
      yahtzeeGame.dobbelstenen = new int[5]; 

      // probeer yahtzee te gooien 
      int aantalPogingen = 0; 
      do 
      { 
       // gooi alle dobbelstenen 
       yahtzeeGame.Gooi(); 
       aantalPogingen++; 
      } while (!yahtzeeGame.Yahtzee()); 

      // vermeld aantal pogingen voor yahtzee 
      Console.WriteLine("Aantal pogingen nodig: {0}", aantalPogingen); 

      // wacht op gebruiker 
      Console.ReadKey(); 

     } 
    } 
} 
+1

你的問題不清楚。你有什麼代碼?你有什麼具體問題? – Elliveny 2015-02-07 15:24:00

+0

我已經更新了這個問題 – user3398922 2015-02-07 16:11:51

+0

我真的不明白爲什麼這麼多次downvoted。如果有人能解釋這一點,那麼我很樂意學習 – user3398922 2015-03-14 12:12:00

回答

1

你需要一點點循環:

public bool Yahtzee() 
{ 
    // check if all dobbelstenen[int] are the same 
    for(int i = 1; i < 5; i++) // start with second dobbelstenen 
    { 
      if(dobbelstenen[i] != dobbelstenen[0]) return false; 
    } 
    return true; 
} 

它只是比較第二,第三,...對第一。

+0

我真的沒有想過這是這麼簡單。這真的有助於清理我的代碼。謝謝 – user3398922 2015-02-07 18:04:21