2011-01-12 8 views
0

私は8つのクイーン問題を解決し、これまでのところ、私が持っているものチェスボード取得配列座標(8つのクイーン問題)

var chessBoard:Array = new Array(); 
for(var i:int = 0; i < 4; i++) 
{ 
    chessBoard.push(new Array(1,0,1,0,1,0,1,0)); 
    chessBoard.push(new Array(0,1,0,1,0,1,0,1)); 
} 

var tileSize:int = 20; 

function createChessBoard():void 
{ 
    for(var i:int = 0; i < chessBoard.length; i++) 
    { 
     for(var j:int = 0; j < chessBoard[i].length; j++) 
     { 
      var tile:Sprite = new Sprite(); 
      var tileColor:int = chessBoard[i][j] * 0xffffff; 

      tile.graphics.beginFill(tileColor); 
      tile.graphics.drawRect(0, 0, tileSize, tileSize); 
      tile.graphics.endFill(); 

      tile.x = j * tileSize; 
      tile.y = i * tileSize; 

      addChild(tile); 
     } 
    } 
} 

createChessBoard(); 

(感謝アンドレは、このコードのため)であるグラフィックプログラムを作成しようとしています

これは問題の黒と白のチェッカーボードを作成しますが、今ではクイーンズを配置できる必要があります。クリックしたボックスに女王を置くためにユーザーがクリックする場所をどのように確認できますか?

(申し訳ありませんが、私の質問は完全には明らかになっていない場合)

答えて

1

私は、あなたの質問に非常に簡単な例を追加しました。以下を参照してください:

var chessBoard:Array = new Array(); 
for(var i:int = 0; i < 4; i++) 
{ 
    chessBoard.push(new Array(1,0,1,0,1,0,1,0)); 
    chessBoard.push(new Array(0,1,0,1,0,1,0,1)); 
} 

var tileSize:int = 20; 

function createChessBoard():void 
{ 
    for(var i:int = 0; i < chessBoard.length; i++) 
    { 
     for(var j:int = 0; j < chessBoard[i].length; j++) 
     { 
      var tile:Sprite = new Sprite(); 
      var tileColor:int = chessBoard[i][j] * 0xffffff; 

      tile.graphics.beginFill(tileColor); 
      tile.graphics.drawRect(0, 0, tileSize, tileSize); 
      tile.graphics.endFill(); 

      //I added the name property and a MouseEvent.CLICK event listener 
      tile.name = "tile__" + i + "_" j + "_sp"; 
     tile.addEventListener(MouseEvent.CLICK, onTileClick); 

      tile.x = j * tileSize; 
      tile.y = i * tileSize; 

      addChild(tile); 
     } 
    } 
} 

function onTileClick(event:MouseEvent):void 
{ 
    //This tells you which tile the user clicked on 
    trace(event.target.name); 
}; 

createChessBoard(); 

幸運、 ロブ

+0

おかげでも、私は今、私はその位置を知ることを1に子を追加することができますか? – master565

+0

クイーンズxとyをevent.target.xとevent.target.yに等しくすることによって、私は気にしません。それはタイルの上に直接置くでしょう – master565