我正在制作一个 Wordle 类型的游戏(你猜一个词,如果你的猜测在正确的位置有正确的字母,则猜到的字母应该变成绿色,如果是正确的字母但错误的位置应该变成黄色)。当猜测中有多个字母时,我无法完全弄清楚为正方形着色的逻辑。
现在我有类似的东西:
For X = 1 to 2
If GuessLetter(X) = WordLetter(X) then set GuessLetter(X) to green
Else if GuessLetter(X) is in WholeWord then set GuessLetter(X) to yellow.
Loop
然而,在单词为 AS 且猜测为 AA 的情况下,此逻辑会将第一个 A 设置为绿色(正确的字母,正确的点,然后第二个字母为黄色(正确的字母,错误的点)。正确的结果应该是绿色,没有颜色,因为单词中只有一个 A。
阻止重复猜测字母被错误地涂成黄色的最有效逻辑是什么?
我在想一些事情,比如计算单词中的唯一字母和猜测,并跳过猜测中超过单词中该字母计数的字母。但这感觉不是很优雅。有没有更好的办法?
我在 javascript 中执行此操作,但最感兴趣的是一般逻辑。