我正在寫一個hang子手遊戲。我的邏輯失敗,無論是我自己還是我的遊戲邏輯。字符猜測(人們猜測的字母)沒有被添加到矢量guessArray的正確內存插槽中。假設該詞是用戶輸入的詞。std :: vector與C++中的原始數組有多類似?
我猜這會工作,如果guessArray是一個原始數組。有沒有一些原因,這不是與矢量工作?
//assume that attempts is num of attempts left
void coutWord(int attempts, std::string word, char guess)
{
std::vector<char> guessArray(word.length());
//this is supposed to add the guess to the correct area of guessArray;
//It's not.
for (int i = 0; i < word.length(); i++) {
if (guess == word[i]) {
guessArray[i] = guess;
std::cout << " " << guessArray[i] << " ";
continue;
}
std::cout << " _ ";
}
std::cout << std::endl << std::endl;
}
編輯:我使用此代碼的目的是來清點所有unguessed空間,在同一個for循環的猜測空間。我只需要「記住」以前的猜測,以便我得到正確的輸出。定的字=「蘋果醬」:
Input: a
a _ _ _ _ _ a _ _ _
Input: p
a p p _ _ _ a _ _ _
等
這似乎是相當bug的代碼,不管是否guessArray是一個載體或原始陣列。 爲了能夠回答你的問題,你需要說出你在這裏嘗試做什麼。 EG,如果單詞是「Triangulate」,並且猜測是「g」,那麼輸出應該是什麼? – 2009-04-27 03:32:07
那麼我應該通過矢量作爲另一個參數? – jkeys 2009-04-27 03:50:44