gpt4 book ai didi

java - 数组有时无法按预期工作

转载 作者:行者123 更新时间:2023-12-02 07:07:22 26 4
gpt4 key购买 nike

我正在开发一款 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 个都是随机填充的,而且它们已经被洗牌了

关于java - 数组有时无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15930779/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com