我正在编写一个简单的sims游戏,我对如何做到这一点毫无头绪。
我知道:
我需要创建两个数组和一个级别(得分)变量
但是,我对代码无能为力。
我的Jsfiddle:http://jsfiddle.net/jbWcG/2/
JS:
var x = []
var y = []
var levelvar = 1
document.getElementById("test").onclick= function() {
document.getElementById("test").innerHTML=x
};
document.getElementById("button1").onclick= function() {
x.push("Red")
};
document.getElementById("button2").onclick= function() {
x.push("Green")
};
document.getElementById("button3").onclick= function() {
x.push("Yellow")
};
document.getElementById("button4").onclick= function() {
x.push("Blue")
};
HTML:
<button id="button1">Red</button><br />
<button id="button2">Green</button><br />
<button id="button3">Yellow</button><br />
<button id="button4">Blue</button><br />
<p id="test">Click To see What you have clicked</p>
我如何使两个数组看到某个值是否相同?
可以说,生成的数组是:[1,2,3,4,1,2,3] 我在第5位,我按2,我怎么检查这两个数字是否匹配? 提前致谢
答案 0 :(得分:2)
一次检查一个数组位置i
为x
的最简单方法是
if (gen_arr[i] == x) {
// matches
} else {
// doesn't match
}
因此,如果您将游戏的流程概念化,那么您需要按下每个按钮:
gen_arr[i] == x
(如果没有,则显示游戏结束)。或者,您可以调用gen_array.shift()
来获取gen_array
中的第一项并将其从数组中删除,而不是跟踪哪个索引,而是以这样的流方式:
var gen_array = [1,2,3,4,1];
function press_button(button_pressed) {
var supposed_to_be = gen_array.shift();
// at this point, on the first call,
// supposed_to_be = 1, and gen_array = [2,3,4,1]
if (supposed_to_be != button_pressed) {
// game over!
} else {
// you survive for now!
if (gen_array.length() == 0) {
// gen_array is empty, they made it through the entire array
// game is won!
}
}
}
虽然这代表了每一步的一般“检查内容”,但不推荐使用此逐字,因为它很快会导致非结构化游戏。
我建议调查一下所谓的“游戏状态”图表,这些图表基本上都是流程图,其中包含游戏的每个“状态” - 在您的情况下,至少包括
从每个州,在“如何”从一个州过渡到另一个州时画出箭头。您可以进行谷歌搜索以查看示例。
一旦你有了一个好的游戏状态图/流程图,就可以更容易地将你的程序分解成特定的块并更好地组织它......然后你通常可以看到你需要编码什么以及缺少什么/什么不缺。