[英]Array sometimes doesn't work as expected
我有一款Android開發游戲。 我已經完成了大部分工作,但是剛剛注意到一個錯誤,我不能總是復制,這(如你所知)使它成為調試的噩夢! 我確定這是一個邏輯問題,但我一直盯着它看這么久我看不到它。 這是對數組進行排序的代碼:
// RANDOMISE UP SOME LETTERS //
for(int i=0; i<MAX_LETTERS; i++)
{
int r = rand.nextInt(25);
// SAVE THIS LETTER //
lettersToUse[i] = letters[r];
}
// NOW MAKE SURE WE COPY IN OUR WORD //
for(int i=0; i<nameLen; i++)
{
int r = rand.nextInt(MAX_LETTERS);
Letter tmpLetter = new Letter();
tmpLetter = letters[lettersInName[i]];
while(in_array(lastElementsUsed, r))
{
r = rand.nextInt(MAX_LETTERS);
}
lastElementsUsed[i] = r;
if(!in_array(lettersToUse, tmpLetter.getLetter()))
{
lettersToUse[r] = tmpLetter;
}
}
我有一組18個允許的字母(在應用程序中)。 第一個循環(顯然)只是挑選一堆隨機字母。 然后,第二個循環確保最后18個字母中包含要猜到的單詞的至少一個字母。
問題是:大部分時間它完美無缺。 在看似隨機的間隔中,最后一個數組將缺少要猜到的單詞中的一個字母。 它也不總是在同一個地方。
任何人都可以看到我的邏輯問題嗎? 如果我錯過了一個重要的難題,我很樂意提供更多的信息和代碼!
TIA。
這種方法似乎更簡單:
for (int i=0; i<(MAX_LETTERS-wordLength); i++)
{
int r = rand.nextInt(25);
// SAVE THIS RANDOM LETTER //
lettersToUse[i] = letters[r];
}
for (int i=MAX_LETTERS-wordLength; i<MAX_LETTERS; i++)
{
// SAVE THIS LETTER OF THE WORD //
lettersToUse[i] = lettersInName[r]; //I think that lettersInName is the right variable name to use, hopefully you understand what I'm trying to do here
}
lettersToUse.shuffle() //or similar method for whatever array type you're using
然后,這確保你有你的話加上其余18個充滿隨機的,他們已經洗牌
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.