You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Wordle类游戏开发问题:.includes()判断异常致提示错误

Wordle类游戏字母判断逻辑修复

你的问题出在checkLetter函数的第二个判断条件上,逻辑完全错误:

  • letterW是从目标词word里取的字符,所以word.includes(letterW)永远为true
  • letterG是从猜词guessed里取的字符,所以guessed.includes(letterG)也永远为true
    这就导致不管猜的字母在不在目标词里,true == true的条件都会成立,错误输出Wrong Spot。

正确的逻辑应该是:当字母位置不匹配时,检查当前猜的字母是否存在于目标词中——存在就输出Wrong Spot,不存在才输出Wrong Letter。

修改后的checkLetter函数代码如下:

function checkLetter(letterPos) {
  if (word.charAt(letterPos) == guessed.charAt(letterPos)) {
    console.log("Same Letter! " + letterPos)
  } else {
    let letterG = guessed.charAt(letterPos)
    // 直接判断猜的字母是否在目标词里
    if (word.includes(letterG)) {
      console.log("Wrong Spot " + letterPos)
    } else {
      console.log("Wrong Letter " + letterPos)
    }
  }
}

另外补充两个实用优化点:

  • 目标词"Lucas"是大小写敏感的,建议统一转成小写(或大写)后再判断,避免因大小写输入导致误判:
    const word = "Lucas".toLowerCase();
    let guessed = prompt("Please Guess The Word").toLowerCase();
    
  • checkLength函数里用户重新输入后未再次校验长度,会导致错误输入直接跳过校验,建议修改为:
    function checkLength() {
      if (word.length == guessed.length) {
        console.log("It Worked")
        // 用循环替代重复调用,更简洁
        for(let i=0; i<word.length; i++){
          checkLetter(i)
        }
      } else {
        console.log("It Failed")
        guessed = prompt("Please Use 5 Letters").toLowerCase();
        checkLength(); // 重新校验新输入的长度
      }
    }
    

内容的提问来源于stack exchange,提问作者Project LuLo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 20:10:48