1

学校のプロジェクトでは、C でゲームを作成する必要があります。ただし、javascript + js の方がはるかに好きなので、簡単に視覚的に実装できるため、構造を正しくするために、c の前に js でゲームを作成することにしました。 . それが、私のコードが奇妙にループしている理由です。

ここでの問題はswitches[]、スイッチが押されている (1/0) アレイがあることです。これを別の配列と比較したい oldArray[]. 今、比較すると、何らかの理由で両方とも常に同じであり、見つけることができません。jsfiddle.netの完全なサンプルを次に示します。問題はmemory()関数にあります。この行は正しく機能していません:

if (switches[i] == 1 && oldArray[i] == 0 && guessedArray[i] == 8 && i != oldtouch) {...}

switches[]常に と等しいように見えるからoldArray[]です。

フィドルで、Startいくつかのボタンをクリックした後、コンソールの出力を押して確認します。

4

1 に答える 1

2

oldArray = switches割り当てステートメントが実行されると、両方の変数がメモリ内の同じ基になるオブジェクトを指すため、それらは等しいです。

同じオブジェクトを指すことなく、ある配列から別の配列にすべての値をコピーするには、次のようにします。oldArray = switches.slice(0)

詳細については、これを参照してください: JavaScript で配列を値でコピーする

于 2013-04-27T01:18:19.690 に答える