1

我正在编写一个简单的 js 西蒙游戏,但我不知道该怎么做。

我知道 :

我需要创建两个数组和一个级别(分数)变量

  • 需要将一个从 1 到 4(含)随机生成的数字添加到第一个数组中,当按下四个按钮中的一个时,如果第二个数组
    大小不同或更大,则将其值添加到第二个数组中比第一个数组。每次向第二个数组添加一个值时,检查该值是否等于
    第一个数组中相同位置的值,如果不相等,则清空两个数组,并将 levelvar 设置为 1,并提示 "gameover" 这意味着如果你
    弄错了,你不能继续。如果第二个数组的长度
    与级别变量匹配,则在数组一中添加一个随机数,清除
    数组二,递增 levelvar。

但是,我对代码一无所知。

我的 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,我将如何检查这两个数字是否匹配?提前致谢

4

1 回答 1

2

一次检查一个i数组的位置的最简单方法x

if (gen_arr[i] == x) {
  // matches
} else {
  // doesn't match
}

因此,如果您将游戏流程概念化,您将希望在每次按下按钮时:

  1. 以某种方式跟踪它们所在的索引(可能有一个计数器,每次按下按钮都会增加)
  2. 检查是否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!
    }
  }
}

虽然这代表了每一步的一般“要检查的内容”,但不建议逐字使用,因为它很快就会导致非结构化游戏。

我建议查看称为“游戏状态”图的东西,它们基本上是流程图,其中包含游戏的每个“状态”——在你的情况下,至少包括

  1. “显示”模式
  2. 等待按钮按下
  3. 检查按钮按下是否正确
  4. 游戏结束
  5. 游戏赢了

并从每个状态中,画出“如何”从一个状态过渡到下一个状态的箭头。您可以进行谷歌搜索以查看示例。

一旦你有一个好的游戏状态图/流程图,就更容易将你的程序分解成特定的块并更好地组织它......你通常可以准确地看到你需要编码的内容以及缺少的内容/没有缺少的内容.

于 2013-07-25T11:42:57.150 回答