Мне нужно создать черепичную карту nxn столбцов/строк. Во-первых, программа запрашивает у пользователя, сколько фрагментов он хочет, затем создает карту с черепицей. После этого пользователь нажимает на одну плиту, а плитки меняют цвет. Затем он нажимает на anothe плитка, и цвет меняется также. После этого программа найдет решение от выбранной плитки к другой.Создание плиточной карты n * n для лабиринта
В настоящее время я создал черепичную карту с компонентом 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();
}
}
Прямо сейчас, я бы сказал, что ваш лучший шаг - отделить логику от рендеринга. Отсортируйте структуру данных, алгоритмы и поведение вашей * модели *, и как только это будет проверено и работает, только тогда рассмотрите, как * визуализировать * модель. См. [MVC] (http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller). Прямо сейчас вы объединили все вместе, что затрудняет разработку, отладку и понимание. – Bohemian