这是我的ActionListen类,它根据网格上的数字向网格上的按钮添加actionlisteners。如果我单击空白点旁边的按钮(TileGame.tile [x] [y] == 0),则两个按钮应交换,但是,当我单击按钮时,没有任何反应。
这是我的代码:
public class ActionListen
{
int x;
int y;
public ActionListen()
{
for( x = 0 ; x <= 2 ; x++)
{
for( y = 0 ; y <= 2 ; y++)
{
if( x <2 && y <2)
{
if(TileGame.tile[x][y] !=0 && TileGame.tile[x+1][y] == 0)
{
TileGame.tilebutton[x][y].addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
TileGame.tile[x+1][y] = TileGame.tile[x][y];
TileGame.tile[x][y] = 0;
new DrawGame();
}
});
}
else if(TileGame.tile[x][y] !=0 && TileGame.tile[x][y+1] ==0)
{
TileGame.tilebutton[x][y].addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
TileGame.tile[x][y+1] = TileGame.tile[x][y];
TileGame.tile[x][y] = 0;
new DrawGame();
}
});
}
答案 0 :(得分:0)
代码目前并不关心空瓷砖的放置位置。所以你只需要用附近的固定瓷砖点击瓷砖。这可能是空白的。但是你应该搜索空白区块(或将空白区块坐标存储在可访问的位置),然后交换这些坐标,而不仅仅是一些随机坐标。
也许应该检查一下空白的瓷砖是否在附近是否是uberhaupt,又可以换掉吗?
TileGame.tile[x][y] = TileGame.tile[getXCoordinateBlankTile()][getYCoordinateBlankTile()];
TileGame.tile[getXCoordinateBlankTile()][getYCoordinateBlankTile()] = 0;
setXCoordinateBlankTile(x);
setYCoordinateBlankTile(y);