2012-05-26 26 views
-2

我有一份來自我的學校的作業,我們必須在控制檯應用程序中使用C#製作MasterMind遊戲。C#控制檯應用程序中的MasterMind

到目前爲止,我設法做了邊界(在朋友的幫助下),遊戲開始時的入門曲調(嘟嘟聲)和插入數字的用戶輸入。

問題是當用戶結束遊戲時,遊戲不停止接受來自用戶的輸入並顯然崩潰。

我在高分法「使用未分配的局部變量」中也有錯誤。

+4

請閱讀[Stack Overflow不會讀取所有](http://meta.stackexchange.com/a/129787/140505)。你張貼的方式太多了。 – Oded

+4

根據Oded的說法,如果您的問題和代碼示例更具針對性,您會有更好的運氣。我會先搜索具體的錯誤,例如,「使用未分配的局部變量」的含義。如果找不到答案,那麼只需使用產生錯誤的代碼塊發佈有關它的問題。 –

+1

您可以嘗試註釋掉您的錯誤處理程序,然後在Visual Studio中進行調試 - 它會向您顯示發生異常的行。無論如何,請嘗試詢問你的老師 - 這就是他們在那裏。如果你不理解語法,一種特定的方法或數據類型 - 就像用谷歌搜索找到大量的示例代碼和解釋一樣簡單。 – Bridge

回答

0

使用未分配的值的可能是這一個:

static void highscore() 
    { 
     { 
      byte ptsguesses,ptsTime, userGuesses, timeTaken; 
      int score; <<------ 

改變它爲int得分= 0;

此外,ptsguesses,ptstime,userguesses和timetaken從未初始化過。 您可能想嘗試將這些參數傳遞給您的highscore()方法。

static void highscore(byte ptsguesses, byte ptsTime, byte userGuesses, byte timeTaken) 

你不得不調用高分()方法的話,並通過實際值的方法。這樣,如果你嘗試運行高分(),你將有實際計算的東西。

+0

好吧,我有點困惑,我這樣做或字節userchoice = 1;或兩者? –

+0

就像你說的那樣,通過執行byte userchoice = 1,沒有任何反應。這很正常,因爲你將值「1」傳遞給用戶選擇,它應該是來自遊戲的一些實際值。按照我的方式做到這一點。 – Thousand

+0

好的,我知道什麼? –

2
score = ptsguesses * ptsTime; 

ptsguesses和ptsTime在哪裏初始化?很明顯,無處不在。

您可能要設置ptsguesses和ptsTime ,然後在之前計算分數。

+0

我該怎麼做? –