需要帮助在Javascript中构建逻辑。阵列逻辑

需要帮助在Javascript中构建逻辑。阵列逻辑,javascript,arrays,if-statement,logic,Javascript,Arrays,If Statement,Logic,下面是游戏大师头脑的硬编码页面。用户 我知道我需要 使用数组来存储RBGY以及与indexOf(数组)相关的一些事情 姓名)我需要定义一个正确的答案(比如现在硬编码的RRBY) 我需要检查用户键入的数组中的每个字母并进行比较 它与RRBY有关 我需要显示2件事的答案在页面上直观,让用户知道哪一个 关闭:在错误的位置使用正确的颜色 精确:在正确的位置使用正确的颜色 例如:2个闭合和1个精确 此外,我需要用户玩这个游戏只有10次后,显示你输了 胜利条件是用户得到正确的组合,然后显示祝贺 我如何设置

下面是游戏大师头脑的硬编码页面。用户

我知道我需要

  • 使用数组来存储RBGY以及与indexOf(数组)相关的一些事情 姓名)我需要定义一个正确的答案(比如现在硬编码的RRBY) 我需要检查用户键入的数组中的每个字母并进行比较 它与RRBY有关

  • 我需要显示2件事的答案在页面上直观,让用户知道哪一个

    关闭:在错误的位置使用正确的颜色 精确:在正确的位置使用正确的颜色

    例如:2个闭合和1个精确

  • 此外,我需要用户玩这个游戏只有10次后,显示你输了

  • 胜利条件是用户得到正确的组合,然后显示祝贺

  • 我如何设置所有这些。新的JS。 第一个目标是使其工作,然后可能会变得复杂的显示(接近和准确)

    有人能帮我理解结构/功能吗?这样我就可以理解逻辑,然后我就可以试着写语法了(我不知道这是否有意义:)

    任何帮助都将不胜感激

    window.onload=init;
    函数init(){
    var按钮=document.getElementById(“usrButton”);
    button.onclick=sayHello;
    }
    //我试图把这个逻辑
    变量颜色=[“R”、“B”、“Y”、“G”];
    var correctAnswer=[“R”、“Y”、“Y”、“G”];
    //也许我认为我需要先定义数组中的正确答案
    如果(){
    //检查数组CorrectAnswer中的所有索引是否与用户键入的索引相同。可能使用每个方法
    //显示成功消息
    }
    其他的
    //只需使用显示逻辑在页面上显示用户键入的内容
    否则如果{
    //如果用户将文本框留空,请提醒他输入一些值
    }
    函数sayHello(){
    var usrTxt=document.getElementById(“usrTxt”);
    var usrName=usrTxt.value;
    var display=document.getElementById(“displayHere”);
    var currentOutput=display.innerHTML;
    display.innerHTML=currentOutput+usrName'
    '; var div=document.getElementById(“总计”); 儿童组(p); //display.innerHTML=usrName; //var p=document.createElement(“p”); //p、 innerHTML=“看起来不错”; }
    正文{颜色:黑色;背景色:#d0e4fe;左边距:45px;填充:0;}
    h1{颜色:黑色;文本对齐:居中;文本转换:大写;}
    p{字体系列:arial,verdana;字体大小:12px;}
    
    主脑
    游戏规则
    
    • 用户有10次机会从RGBY输入他们对4种颜色的猜测。之后你就输了
    • 正确答案是-正确的颜色在正确的位置
    • 接近的答案是-正确的颜色,但在错误的地点
    输入您的姓名,然后单击提交


    尝试以下方法:

    answer='RYYG'
    function haveAguess(){
        guess=textBox.value
        guessDiv.innerText=guess
        if(!guess){
            alert('No Guess Entered!')
            return
        }
            else if(guess==answer){
                alert('Congratulations')
                return
            }
                else{
                    result=[]
                    x='Wrong'
                    y='Wrong'
                    for(i in guess){
                        if(guess[i]==answer[i]){
                            x='Correct';    y='Right'
                        }
                            else if(answer.indexOf(guess[i])>=0)    x='Correct';
                        result.push('Color ['+i+'] is the: '+x+' Color in the '+y+' Spot');
                    }
                    displayDiv.innerText=result.join('\n')
                }
    }
    
    我想它满足了你所有的需要

    已编辑 这就是它的工作原理

  • guess=textBox.value
    ;从文本框中检索用户猜测
  • guessDiv.innerText=guess
    ;在屏幕上显示猜测
  • 如果(!猜测)
    <代码>!guess与guess=''相同,或者没有输入猜测,因此提醒用户并返回/结束函数
  • 否则如果(猜测==回答)
    ;如果猜测与
    答案
    变量相同,则该变量将向用户表示祝贺并结束函数
  • 其他
    ;如果用户输入了一些文本,例如:
    guess!=''猜测与答案不匹配,即:
    猜测=回答
    ,然后:
    5.1. <代码>结果=[]
    ;准备好数组以返回结果。
    5.2. <代码>x='错误';y='error';将x&y默认值设置为“错误”。
    5.3. <代码>用于(我猜);循环遍历
    guess
    字符串中的每个字符。
    5.3.1. <代码>如果(猜测[i]==答案[i]);如果
    guess
    [i]
    处的字符与
    answer
    [i]
    处的字符匹配,即:
    guess[i]='R'=&answer[i]='R'
    ,则结果是“正确位置的正确颜色”,因此将
    x
    y
    更改为匹配。
    5.3.2.
    else if(answer.indexOf(guess[i])>=0)
    ;如果
    guess
    [i]
    处的字符与
    answer
    [i]
    处的字符不匹配,即:
    guess[i]='Y'&&answer[i]='R'
    ,则
    answer.indexOf()
    检查
    answer
    以查看它是否包含值
    guess[i]
    ,如果
    false
    则返回
    -1
    ,如果
    true
    则返回
    guess[i]
    的索引<代码>>=0如果返回值(-1或索引)大于或等于0,则
    猜测[i]
    出现在
    答案中
    因此更改
    x
    ,结果是“错误位置的正确颜色”。
    5.3.3. <代码>结果。推送(…);现在
    x
    y
    已修改为正确显示,请使用
    .push()
    将显示字符串附加到
    结果
    数组的末尾
    5.4. <代码>显示div.innerText;现在循环已经完成,
    results
    在用户猜测中包含一个字符串,您只需在显示div中显示它即可。
    5.4.1. <代码>结果。连接('\n');将
    结果
    数组与'\n'合并在一起,然后显示为
    内部文本
  • 需要更多的帮助吗?!试试这些:


    对我来说就像是家庭作业。你真正尝试了什么,我没有看到任何逻辑真正实现。但如果你需要帮助,这是一个开始。回答你的4个问题。1.编写一个函数,从用户获取输入字符串并将其设置到数组中。2.写两个检查,1为索引检查,0、1、2、3为4种颜色。如果其中任何一个匹配,通知用户索引上的正确颜色。再次检查数组中颜色的contains(),然后再次通知。3.迭代设置为0的整数,每个