lunes, 8 de diciembre de 2008

Primer intento!!

Primer intento fallido de construir un Ambiente virtual

                Ilucionados  y hasta entusiasmados, inciamos mi equipo y yo la labor de desarrollar un hambiente virtual, comenzamos con lo mas básico, la construcción de el mundo, asi que pensamos

¿Qué es lo que debe tener nuestro mundo virtual?

                Pensamos en:

· Limites 
· Hoyos
· Wumpus
· Brisa 
· Mal olor 
· Oro

Asi que iniciamos con esta construcción, lo primero que definimos fue la manera en que se construiría el mundo, de que forma inicializaríamos nuestro valores del mundo, asi que pensamos en cargarlos de un archivo de texto plano, donde previamente haríamos la definición del mundo, este es un ejemplo de la configuración que l profesor nos dio (vista desde nuestro archivo de texto)

0000010 1000000 0000900 1000000 
0020000 0000000 1000000 0000000 
0004000 1520000 0000900 1000000
0020000 0000000 1000000 0000900

 

Explicando rápidamente

1º Dijito Brisa 
2º digito Oro 
3º Digito mal olor 
4º digito Wumpus 
5º Digito hoyo
6º Digito Visitado 
7º Digito Bloquedo

 Nota  Bloqueado se utilizara para
 conocer un estado necesario posteriormente.

 

A lo que el programa convertiría en algo asi

Quizas pareciera que la representacion es muy basica y sencilla, que en realidad no ofreceria un respuesta a pocibles factores reales, es decir, que quizas wall-e no realizaria una accion de Cenzar, simplemente sabria ya que valores hay en las casillas, o que wall-e no cami

naria libremente por el mundo y que solo saltaria de casilla en casilla. Pero en realidad este walle, esta diseñado y prgamando de tal forma que si cumple funciones propias de un wall-e real, por ejemplo puede camiar y salirse del mapa, puede caminar libremente por el mundo y no solo brincando de casilla en casilla, tal y como lo haria un wall-e fisico.


 



A continuacion mostramos una vista, de un version previa a la final, donde de forma vulda, podemos ver como el labarinto en una version inicial se pensaria que podria crecer de la forma nxn, aunque en la version final esto se desecharia por motivos de factibilidad.

 

En esta vista podemos ver que se encuentra una cuadricula (a la derecha), esta cuadricula es el mapa interno de wall-e, ya que como el no conoce el contenido del mapa, el debere ir llenando su propio mapa, con sus anotaciones.


Un poco del Codigo de Wall-e

class walle

    {

        public int orientacion;

        string[] palabras;

        char[] aux;

class walle

    {

        public int orientacion;

        string[] palabras;

        char[] aux;

        public walle()

        {

            orientacion = 2;

        }

        public int Percibir(PictureBox walles, PictureBox Casilla, int col)

        {

            string color;

           

            if (walles.Location == Casilla.Location)

            {

                color = Casilla.ImageLocation;

               palabras = (color.Split('\\'));

               foreach (string unidad in palabras)

               {

                   aux = unidad.ToCharArray();

               }

               Console.Write("Ver si se stien" + aux[0]);   

                int ret=aux[0]-48;

                return ret;

            }

 

           

           return colo;

        }

        public int Izquierda()

        {

            if (orientacion == 0)

                orientacion = 3;

            else

                orientacion--;

            return orientacion;

        }

        public int Derecha()

        {

            if (orientacion == 3)

                orientacion = 0;

            else

                orientacion++;

            return orientacion;

        }

        public Point Caminar(Point PoXY)

        {

            if (orientacion == 0)

                PoXY.X--;

            if (orientacion == 1)

                PoXY.Y++;

            if (orientacion == 2)

                PoXY.X++;

            if (orientacion == 3)

                PoXY.Y--;

            return PoXY;

        }

    }

Un poco de la estructura de la clase Walle, da definicion de mundo, tuvo que ser modificada, ya que de lo contraria sera muy dificil llevar un contro de los movimientos de walle, ya que al tener completa libertad, podria dar un pasa a la derecha y no cambiaria de casilla, quizas podria dar 15 pasaso antes de salir de la casilla, y guardar esos 15 pasos en direcciones aleatorias, seria muy complicado, aunque en algun momento seria interesante retomar esta estructura, ya que el permitir que se mueva lebremente garantiza una simulacion de un wall-e Fisico, mas real.

 

No hay comentarios: