Code Monkey home page Code Monkey logo

public-maze's Introduction

###Generales

La asignación final de la asignatura consistirá en una aplicación que resuelva laberintos de manera concurrente. Se deberá entregar un informe técnico indicando las notas del estudiante sobre el diseño y la construcción de la aplicación. El código de la aplicación será el entregable válido para la nota del laboratorio de la asignatura.

###Metodología

El proyecto inicial será realizado de manera individual. Los estudiantes estarán entregando tanto el código como el reporte en una sola entrega a través del grupo de Google a más tardar el jueves 10 de octubre (10ma semana)

###Requerimientos Detallados

• La aplicación deberá leer un archivo llamado C:\maze.txt, el cual tendrá la siguiente estructura:

o La primera línea deberá contener la cadena “SIZE n”, donde SIZE será escrito literalmente, seguido de un espacio en blanco y de un número (n) indicando el tamaño del laberinto. Un laberinto se representa mediante una cuadrícula de n x n cuadros, donde algunos cuadros están ocupados (formando las paredes del laberinto) y otros lados están vacíos (formando sus pasillos)

o La segunda línea deberá contener la cadena “ENTRY a b”, donde a y b indican las coordenadas (fila, columna) de la entrada al laberinto

o La segunda línea deberá contener la cadena “EXIT a b”, donde a y b indican las coordenadas (fila, columna) de la salida del laberinto

o El resto del archivo tendrá exactamente n líneas, y cada línea contendrá n números enteros separados entre sí por un espacio. Estos números sólo podrán ser un 1 o a un 0. Para explicar este contenido, se llamará a al número de línea (entre 1 y n), y b a la posición relativa de cada número (también entre 1 y n) dentro de cada línea. Un 1 significa que en la posición (a, b) del laberinto hay un bloque; un 0 significa que en la posición (a, b) de laberinto hay un espacio vacío

• La aplicación deberá recorrer el laberinto del siguiente modo:

o Iniciará con un hilo recorriendo desde la entrada del laberinto

o Por cada bifurcación que halle, dicho hilo lanzará otro hilo para recorrer de manera paralela esa bifurcación

o Al llegar a la salida, la aplicación debe desplegar todas las rutas posibles de solución, lo cual hará listando los nombres de los hilos cuyas rutas concatenadas llevan desde la entrada hasta la salida del laberinto

###Notas Varias

• El estudiante tendrá libertad para estructurar la lectura del archivo según le convenga (puede usar código desarrollado desde cero o puede usar una herramienta tipo ANTLR).

• El estudiante tendrá libertad de desplegar la información como le convenga (puede ser en formato texto, imprimir sólo el resultado, o en formato gráfico, imprimir el recorrido, etc.).

• El estudiante tendrá la libertad de utilizar la herramienta de desarrollo que desee. La vasta mayoría de los conceptos explicados en clase se pueden implementar por igual en .NET y en Java, incluyendo el uso de ANTLR y los conceptos de concurrencia.

• El estudiante podrá asumir que los archivos con los cuales será probado el programa no contienen errores, y que los laberintos de prueba siempre tendrán solución.

• El estudiante tendrá libertad de ofrecer la implementación mínima que funcione correctamente, sin preocuparse por optimizaciones como reducir la cantidad de hilos, evitar ciclos o loops, etc. Criterios de Evaluación.

• Diseño e implementación correctas.

• Documentación completa de las decisiones de diseño y el razonamiento detrás de ellas.

public-maze's People

Contributors

zyenxd avatar chamuel51 avatar migueloc19 avatar

Watchers

James Cloos avatar  avatar

Forkers

eliancruz29

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.