2017-04-24 5 views
1

私はlitteゲームの基本を開発しました... tic tac toe ...しかし、私は問題があり、これをどのようにして最良の方法で解決するかわかりません...だから私はこれを持っています:Javascriptオブジェクトとの混乱

var playfield = function(){ 
this.board = [ 
    [null, null, null], 
    [null, null, null], 
    [null, null, null] 
]; 

this.simulationMode = false; 

this.nextSymbol = "X"; 

this.setSymbol = function(symbol, x, y){ 
     if(this.whoIsNext() == symbol || this.simulationMode){ 
      if(this.isFree(x, y)){ 
       this.board[y][x] = symbol; 
       this.changeWhoIsNext(); 
       return true; 
      }else{ 
       console.log("Field is not empty "+x+";"+y); 
       return false; 
      } 
     }else{ 
      console.log("It is not "+symbol+"'s turn"); 
     } 
    }; 
... 
} 

これはゲームフィールド自体を格納します。

var board1 = new playfield(); 

それから私は、次の動きを計算新しいインスタンスを作りたい:

var simboard = new playfield(); 

をしかし、私はこれを行う:

simboard.setSymbol("X", x, y); 

それはboard1とsimboardで変更を行います。 なぜですか?そして私が間違っているのは...?

完全なソースは、ここで見つけることができます: https://gameink.net/js/tictactoe.js?PageSpeed=off

+1

'this.board'プロパティへの参照に問題があります。別の方法で初期化しました。たとえば、オブジェクトの新しいインスタンスを作成する場合などです。 – sunpietro

+0

また、 'new new'はエラーを投げませんか? – evolutionxbox

+0

良い点は、コピー貼りの誤字です。 –

答えて

0

これはjavascriptオブジェクトの

を参照しているあなたはそれをしようとしているたびに、これを使用しますたびだから、この

playfield.prototype = Object.create(playfield.prototype); 

をお試しください新しいインスタンス。

+1

これについて詳しく説明してください。 –