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