
Laberitnot
Publicado por Andrea (1 intervención) el 17/05/2017 01:35:19
Hola a todos/as estoy en una encrucijada quiero hacer una laberinto ya puedo imprimirlo en el jframe pero no se como bloquear las paredes. El jlabel ya se mueve y todo pero no logra hacer que solo puedo seguir el camino y al toparse con una pared no se perimita ¿Alguien puede ayudarme?
este es el código que he hecho por ahora
este es el código que he hecho por ahora
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem1ActionPerformed
// TODO add your handling code here:
JFileChooser selectFile = new JFileChooser();
int returVal = selectFile.showOpenDialog(this);
File file = selectFile.getSelectedFile();
BufferedReader br = null;
FileReader fr = null;
try {
fr = new FileReader(file);
br = new BufferedReader(fr);
String linea;
int k = 0;
while ((linea = br.readLine()) != null) {
String[] a = linea.split(";");
for (int i = 0; i < 15; i++) {
Matriz[k][i] = (a[i]);
}
k++;
}
} catch (IOException ex) {
Logger.getLogger(Laberinto.class.getName()).log(Level.SEVERE, null, ex);
}
for (int i = 0; i < 15; i++) {
for (int j = 0; j < 15; j++) {
tablero[i][j] = new JLabel();
tablero[i][j].setBounds(x, y, 25, 25);
tablero[i][j].setOpaque(true);
switch (Matriz[i][j]) {
case "p":
colorb = Color.black;
break;
case "c":
colorb = Color.white;
break;
case "e":
colorb = Color.CYAN;
label.setBounds(x, y, 25,25);
label.setBackground(colorb = Color.red);
label.setOpaque(true);
this.add(label);
break;
case "s":
colorb = Color.MAGENTA;
break;
}
tablero[i][j].setBackground(colorb);
x = x + 25;
this.add(tablero[i][j]);
}
x = 25;
y = y + 25;
}
this.repaint();
}//GEN-LAST:event_jMenuItem1ActionPerformed
private void formKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_formKeyPressed
System.out.println(evt.getKeyCode());
if(evt.getKeyCode()==39){
label.setLocation(label.getLocation().x + 25, label.getLocation().y);
}
if(evt.getKeyCode()==37){
label.setLocation(label.getLocation().x - 25, label.getLocation().y);
}
if(evt.getKeyCode()==40){
label.setLocation(label.getLocation().x , label.getLocation().y + 25);
}
if(evt.getKeyCode()==38){
label.setLocation(label.getLocation().x + 25, label.getLocation().y - 25);
}
Valora esta pregunta


0