2011-01-12 24 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

感謝,但我還可以怎樣一個孩子添加到一個現在我知道它的位置? – master565 2011-01-12 20:59:01