簡體   English   中英

數組有時無法按預期工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM