Java - Laberitnot

 
Vista:
Imágen de perfil de Andrea

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

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder