lunes, 8 de abril de 2013

Algoritmo de búsqueda en el espacio de estados.

Este algoritmo de búsqueda consiste en un puzzle.
En el cual consta con 9 espacios designados por botones que se enumeran del 0 al 8 de izquierda a derecha , que están vinculados con partes de imagen para dar origen a una imagen en total.

Los botones (imágenes) tienen un número fijo de tal forma que nos permite saber si el puzzle esta resuelto, cuando tienen la secuencia de 0-8 en ese orden de izquierda a derecha.


Tiene una función Resolver, lo que hace es que a través de la función random desordena los espacios del 0 al 8.

public void revolver() {
        for (int i = 0; i < 8; i++) {
            cambiar(i, (int) (Math.random() * 8));
        }
        contador = 0;//se utiliza para contar los cambios
    }

Donde además de una vez inicializado el puzzle , comienza a correr el tiempo a través de  la función run.


public void run() {
        try {
            for (;;) {
                if (segundos == 59) {
                    segundos = 0;
                    minutos++;
                }
                if (minutos == 59) {
                    minutos = 0;
                    horas++;
                }
                segundos++;

                Time.setText(horas + ":" + minutos + ":" + segundos);

                Thread.sleep(1000);
            }
        } catch (InterruptedException e) {
            System.out.println(e.getMessage());
        }
    }


Además de  la función que permite cambiar los botones que llevan las imágenes. 

void cambiar(int a, int b) {
        String temporal;
        Icon imagen;
        temporal = botones.get(a).getLabel();
        imagen = botones.get(a).getIcon();

        botones.get(a).setLabel(botones.get(b).getLabel());
        botones.get(b).setLabel(temporal);

        botones.get(a).setIcon(botones.get(b).getIcon());
        botones.get(b).setIcon(imagen);

    }





A continuación el archivo el Puzzle





No hay comentarios:

Publicar un comentario