我需要创建一个n x n的平铺地图。首先,程序询问用户想要多少个平铺,然后创建一个平铺地图。之后,用户单击一个平铺,平铺就会改变颜色。然后他点击另一个平铺,颜色也会改变。之后,程序将找到从选择的平铺到其他平铺的解决方案。
目前,我使用Graphics2D组件创建了平铺地图,但当我单击平铺时,整个图形都会改变颜色,而不仅仅是一个平铺......请告诉我问题出在哪里?有什么好的绘制平铺地图的方法吗?谢谢!迷宫应该看起来像这样:
我还需要输入墙壁和寻找解决方案的代码。 这是我创建地图的JPanel代码。
目前,我使用Graphics2D组件创建了平铺地图,但当我单击平铺时,整个图形都会改变颜色,而不仅仅是一个平铺......请告诉我问题出在哪里?有什么好的绘制平铺地图的方法吗?谢谢!迷宫应该看起来像这样:
我还需要输入墙壁和寻找解决方案的代码。 这是我创建地图的JPanel代码。
public LabyrintheInteractif (){
addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
click=true;
repaint();
xClick=e.getX();
yClick=e.getY();
}
});
tiles=Integer.parseInt(JOptionPane.showInputDialog("How many tiles ?"));
Quadrilage", JOptionPane.YES_NO_OPTION);
setPreferredSize(new Dimension(734, 567));
setVisible(true);
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.white);
rect = new Rectangle2D.Double(0, 0,getWidth(), getWidth());
g2d.fill(rect);
g2d.setColor(Color.black);
for (row = 0; row <tuiles; row++) {
for (column = 0; column < tuiles; column++) {
g2d.setStroke(new BasicStroke(3));
g2d.draw( square=new Rectangle2D.Double(column*100 , row*100,100,100));
}
if(click){
g2d.setColor(Color.green);
g2d.fill(square);
repaint();
}
}