2016-11-14 1 views
0

私は掃海艇のゲームを作成していますが、私はユーザーがゲームボードの行の数に基づいて持っているフラグの数を設定しようとしています。私はこれらの2つのモジュールを別々のモジュールに持っています。なぜモジュールが正しく通信することができないのか分かりません。明らかに私は間違ったことをやっているが、何が分かりにくいのか分からない。別のモジュールで変数を変更する

var gameboard = (function() { 

var initialize = function(rows, cols) { 
    var flags = 0; 
    for(var x = 0; x < rows; x++) { 
      flags++; 
      for(var y = 0; y < cols; y++) { 
       var unit = $("<div class='unit'></div>"); 
       unit.width(($('#gameboard').width()/cols) - 2).height(($('#gameboard').height()/rows) - 2).appendTo('#gameboard'); 
      } 
     } 

    addId(rows, cols); 
    gatherMines(rows); 
    setFlags(flags); 
}; 

var setFlags = function(number) { 
    gamePlay.flagCount = number; 
} 

return { 
    initialize: initialize, 
    flags: setFlags 
}; 

}()); 

var gamePlay = (function() { 

var flagCount; 

return { 
    go: go, 
    flagCount: flagCount 
}; 

}()); 

答えて

0

gamePlayオブジェクトを考えてみましょう:

var Gameplay = function(flagCount) { 
    this.flagCount = flagCount; 
}; 

あなたは今ちょうどあなたのゲームボードのオブジェクトにGamePlayオブジェクトのインスタンスを作成することができます。たとえば、あなたのinitializeメソッド内:

var gp = {}; 

var initialize = function(){ 
    gp = new Gameplay(0); 
} 

あなたは今限りinitialize()が実行されているように、どこでもgpを使用することができます。

+0

ご回答いただきありがとうございます。しかし、私のgameboardモジュールからフラグの数を直接設定する方法はありますか?私は私のgamePlayモジュールに他の機能を持っていますが、簡潔に省略しています。何らかの理由でこの解決策が私に混乱しています。 –

+0

私の解答の下にコメントを追加しました。 – Koen

関連する問題