-2

わかりました、私と友人が一緒に JS ゲームを作っています。ユーザーがリソースを使用して家やその他の建物を建設するのは、一種のゴッドゲームです。それは非常に初期の開発です!

特定の建物に設定できるように、グリッド参照として変数を使用します。例えば:

var OneOne = none

したがって、グリッドは次のようになります。

  • ワンワン、ワンツー、ワンスリー
  • ツーワン、ツーツー、ツースリー
  • スリーワン、スリーツー、スリースリー

私の問題は、建物の段階のどこかにBuild(type, loc)あります。建物をマップに追加するために使用される関数を使用します。locパラメータを見て、対応するグリッド参照を建物の値に設定する switch ステートメントを使用してこれを行います。だから、もしthis.loc === OneOne、その後OneOne = this.type

このスクリプトの望ましい結果は、OneOne を WoodHut に設定することです。

理論上、グリッドを 1 行ずつ印刷すると、次のBuild(WoodHut, OneOne)ようになります。

  • ウッドハット、なし、なし
  • なし、なし、なし
  • なし、なし、なし

しかし、これはうまくいきません!なぜこれが機能しないのか本当にわかりません...私が得る本当の結果は次のとおりです。

  • なし、なし、なし
  • なし、なし、なし
  • なし、なし、なし

ここに私のソースコードがあります: JS

そして、スクリプトと関数を実行するために使用する HTML: HTML

それらを読んで、私のエラーを見つけてください!ヒントやチュートリアルをいただければ幸いです。前もって感謝します!

4

1 に答える 1

0
var OneOne = none;
var OneTwo = none;
var OneThree = none;
var OneFour = none;
var OneFive = none;

var TwoOne = none;
var TwoTwo = none;
var TwoThree = none;
var TwoFour = none;
var TwoFive = none;

var ThreeOne = none;
var ThreeTwo = none;
var ThreeThree = TownHall;
var ThreeFour = none;
var ThreeFive = none;

var FourOne = none;
var FourTwo = none;
var FourThree = none;
var FourFour = none;
var FourFive = none;

var FiveOne = none;
var FiveTwo = none;
var FiveThree = none;
var FiveFour = none;
var OneFive = none;

そうしないでください。代わりに配列を使用してください。以下は、配列の配列でこれを行う方法です。例えばマトリックス。

var tiles = [];
var rowCount = 5; // put as many as you like
var columnCount = 5; // put as many as you like

// Assign the none string to all tiles.
for (var r = 0; r < rowCount; r++)
{
    tiles[r] = [];
    for (var c = 0; c < columnCount; c++)
    {
        var currentRow = tiles[r];
        currentRow[c] = "--none--";
    }
}

// Now access FourTwo (row 4, column 2). Remember arrays are 0-based.
console.log(tiles[3][1]);

// Assign something to FiveThree
tiles[4][2] = "WoodHut"
于 2013-06-05T17:46:35.333 に答える