lunes, 20 de septiembre de 2010

Proyecto 1 Grupo E Seccion 20






El cubo de Rubik (o cubo mágico, como se lo conoce en algunos países) es un rompecabezas mecánico inventado por el escultor y profesor de arquitectura húngaro Ernö Rubik en 1974. Se trata de un conocido cubo cuyas caras están divididas a su vez en nueve cuadros del mismo color, los cuales se pueden mover excepto la del centro que siempre permanece en su lugar. El objetivo del juego y el entretenimiento que genera consiste en desarmar la configuración inicial en orden y volverla a armar.





El juego llamado Rubix cumple la misma función que el cubo Rubik con la única diferencia de que Rubix es un juego en un solo plano, donde el objetivo principal del juego es ordenar los colores tal y como se presentan en el patrón. 








para ver el el juego original de click en el siguiente enlace:




Manual de usuario

Manua de usuario

Anécdotas y consejos de programación

Lo más emocionante

Una de las cosas que más nos emocionó fue que el proyecto sería acerca de la imitación de un juego porque esto nos motivó a seguir la elaboración del proyecto de una manera continua y a investigar sobre temas que requerían de mayor experiencia como programadores.

Al tener todo el código ya listo solo para probar el juego fue lo mejor de todo el proyecto, ya que se tenía el deseo de que el juego funcionara, una vez corrido el programa se probó por primera vez el juego y fue muy satisfactorio ver que tanto esfuerzo al fin daba resultado.

Los más impresionante programado y porqué

Lo primero que más nos impresionó fue que pudimos mejorar el proyecto implementando opciones de salida y de anulación de movimientos en el método juego (int cantidad, Rubix desafio, Rubix meta) simplemente con un par de comparaciones extras, salidas forzadas y obviando algunos valores cuando se deseaba realizar un movimiento. Nos impresionó ya que con esto el proyecto logra verse cada vez más como el juego original, lo imita de una mejor manera.

Otra de las cosas que más nos impresionó fue que pudimos leer un archivo externo sin la necesidad de emplear la clase Bufferedreader, la cual uno de los miembros del grupo sabía utilizar más ninguno comprendía exactamente su función. Nos impresionó porque se logró leer texto de un archivo externo utilizando únicamente la clase Scanner y File y un poco de ingenio.

El método juego (int cantidad, Rubix desafio, Rubix meta) fue una de las cosas más impresionantes que realizamos como programadores, ya que con él pudimos implementar niveles de juego al proyecto, además de que el método de por sí realiza una sola tarea, que es imitar el juego original de Rubix, sin embargo en él hay varias comparaciones que parecen sencillas, más estas fueron producto de largas horas de análisis para las condiciones requeridas a elaborar.

Lo que más costó y cómo se resolvió

Una de las cosas que contribuyeron al atraso del proyecto fue que equivocadamente borramos completamente el código del prototipo del proyecto, sin embargo se resolvió el problema revisando el diagrama UML y el análisis del mismo.

Otro factor que hizo del proyecto un desafío fue el hecho de que no podíamos crear una copia del atributo “matriz” de un objeto sin que esta copia no fuera un alias del mismo. Dicho problema fue resuelto con ayuda de la catedrática del curso que nos aconsejó con la creación del método copiar(), dicho método se puede observar en la clase Rubix y consiste en crear una matriz temporal de igual cantidad de filas y columnas que el atributo y copiar espacio por espacio el atributo “matriz”.

Algo que en realidad nos costó y decepcionó a la vez fue la integración de la opción de ingreso de filas y columnas, ya que a pesar de ser una condición del proyecto, no fue implementada hasta que la catedrática del curso nos lo advirtió cuando se presentó el prototipo del proyecto, por lo que tuvimos que alterar completamente el código ya que habíamos realizado supuestos.

Vídeos.

para ver opiniones y vídeos del funcionamiento del juego pude ver cualquiera de los siguientes dos enlaces:


Programas.

Análisis



Driver_Rubix



Leer Archivo



Rubix