2015-10-19 53 views
-2

我被分配創建一個猜謎遊戲,在這裏你會得到一個星號的祕密詞,並有5次嘗試猜出正確的詞。他們一次輸入一封信,這些信件在單詞中顯示。與hang子手不同,每一回合都會計數,而不是每次他們選擇一個不在單詞中的字母。類只需要一個默認的構造函數這是我到目前爲止的代碼,這裏是司機:http://pastebin.com/35T9B4wM祕密文字遊戲

public class SecretWord { 
private String secretWord; 
private String hintWord; 
private int numberOfTurns; 

public SecretWord() 
{ 
    this.secretWord = "fruit"; 
    this.numberOfTurns = 0; 
    for(int i=0;i<secretWord.length();i++) 
    { 
     hintWord+="*"; 
    } 
} 
public String getSecretWord() 
{ 
    return this.secretWord; 
} 
public String getHintWord() 
{ 
    return this.hintWord; 
} 
public int getNumberOfTurns() 
{ 
    return this.numberOfTurns; 
} 
public void setSecretWord() 
{ 
    this.secretWord = "fruit"; 
} 
public void setHintWord() 
{ 

} 
public void setNumberOfTurns(int i) 
{ 
    this.numberOfTurns = 5; 
} 
public void guessLetter() 
{ 

} 

} 

我只是不明白什麼應該在存取或增變去。或者在guessLetter變量中,只要在祕密字中找到字母,那麼該字母就會替換提示字中的星號。 以下是可能有所幫助的說明列表。

  • 這個類有三個實例變量
  • secretWord中:用戶 要猜
  • hintWord詞:用猜字母的單詞透露
  • numberOfTurns:保持猜測
  • 數量的軌道
  • 該課程只需要一個默認構造函數
  • 您設置密碼
  • 圈數0
  • 的提示字默認值是使用每一個字母這是在祕密字
  • 訪問者的每一個實例變量
  • 變異符的有效值每個實例變量CHECK星號(*)構建!
+0

什麼似乎是問題? – gonzo

+0

問題是,我卡住了,真的不知道該放入增變器(有效值)的內容。此外,我堅持要在guessLetter變量中放置什麼,它將正確的猜測字母代替星號。 @gonzo – ChristianN

+0

那麼你編碼的mutators目前看起來很好。您只需在將其設置爲任何實例變量之前驗證該值。例如,在你的'setNumberOfTurns'上,什麼類型的值在這裏是無效的?提示:我們可以有負轉數嗎? – gonzo

回答

0

是的,你是非常接近的邏輯。之後你只需要更新你的hintWord。像這樣的東西應該可以做到。

hintWord = ""; 
for (int i = 0; i < secretWord.length(); i++){ 
    if (secretWord.charAt(i) == guess){ //Check if we found anything 
     //found = true; We do not need this variable since we already know if we found something 
     correctLetters[i] = guess; 
    } 
    hintWord += correctLetters[i]; 
} 

只要確保您的correctLetters在開始時設置正確。你可以在你的setHintWord中設置它。就像這樣:

public void setHintWord(){ 
    correctLetters = new char[secretWord.length()]; 
    for(int i=0;i<secretWord.length();i++) 
    { 
     hintWord+="*"; 
     correctLetters[i] += '*'; 
    } 
} 

如果您不希望跟蹤另一實例變量(因爲你的指令說只使用3),你可以做這樣的事情有一個臨時String

public void guessLetter(char guess){ 
    String tempHintWord = ""; 
    for (int i = 0; i < secretWord.length(); i++){ 
     if (secretWord.charAt(i) == guess){ //Check if we found anything 
      //found = true; We do not need this variable since we already know if we found something 
      tempHintWord += guess; 
     }else{ 
      tempHintWord += hintWord.charAt(i); 
     } 
    } 
    hintWord = tempHintWord; 
} 
+0

我想出了一切。謝謝您的幫助! – ChristianN

+0

@ChristianN隨時接受我的答案,如果它幫助你把所有東西都弄清楚。謝謝。 – gonzo