繁体   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