Resurrección: Parte 2

5:25 de la Mañana. 48H después de mi promesa de devolver la Paz a la práctica, tras el infierno que había traido la Interfaz Gráfica y los nuevos botones en sí, ha llegado la hora de proclamar el fin de dicho trabajo.

Decir que estoy REVENTADO física y psicológicamente es poco, pero la alegría que llevo dentro de ver la evolución que hemos tenido en 2 días lo compensa todo.

En subversión está, la dicho sea de paso, VERSIÓN 298, PRE-RC1.

No estoy ahora para explayarme, así que me limitaré a decir que desde el momento que hagais UPDATE, TODO VALE. Recordad que por ahora sólo hay un bug conocido que es el de la Venta de Terrenos. Más que un bug, es que vende lo que él quiere, pero bueno xD, mañana lo fulminaremos.

Ya mañana os contaré el total de cambios y tal.

Buenas noches SONA-TEAM!

(EDITADO -POLLO-) ¿Por qué no les has dado la feliz noticia de que persistencia ya funciona? Sí amigos sí, ya almacena correctamente las tablas de los jugadores :D No está ni mucho menos completado, pero ya sabemos cómo hacerlo todo :D

Hasta la poia de PB!!!

Después de desahogarme con el lokoh un poko, os cuento lo mismo que le he contado, he aborrecido Prison Break! y os preguntareís…. porqué?, pues la respuesta es bien sencilla. Llevo dos tardes en la que me habré mirado más de 20.000 imagenes de la serie, y direis… que exagerado es el hijo puta xD, pues no…, me he visto todas las screencaptures de los 54 capitulos que hay a día de hoy de Prison Break. Ahora mismo, para los que hallan visto lost :P , estoy como el novio de la hija de la francesa cuando se lo encontraron en aquella sala :) .

Bueno aqui os subo una nueva versión de la imagen de LJ y una mejora de la imagen del negrón del que es imposible encontrar fotos :P

En el pack también va dos versiones de nuestro futuro tablero.

Sin más me voy a dormir ya y mañana será otro día.

Ciao hermanos ;)

PD: Mañana subo las tarjetas con las nuevas divisas :P

tabrar.jpg (Nueva versión del archivo 20:00 del domingo 27)

Resumen teórico

Adjunto la primera versión de un superresumen teórico. Dudo que pueda ser devastado aún más. :D Se admiten modificaciones (renombrar a .doc)

isw2rar.jpg

Edito (Lokoh):

He justificado los textos y guardado en rar con contraseña, como subimos todo, que se te había olvidado.

Resurrección: Parte 1

11 Horas seguidas haciendo esquemas, pensando y picando código a morir. Casi no paro ni para comer.

Han sido tantos los cambios internos de la práctica, que antes de sacar el SONAPOLY 1.0 se podría pensar en sacar el SONAPOLY 2.0.

Ha sido una AUTENTICA barbaridad, y lo más gracioso de todo es que aún queda que echarle algunas horas más para terminar la transición del antiguo código al nuevo. Y todo esto, recuerdo a los presentes, con el objetivo de hacer que la práctica sea estable al 100% en el manejo de botones (que no lo era NI DE LEJOS, y con la llegada de Comerciar menos aún).

Lo bueno de todo esto, es que con el nuevo sistema que me he sacado de la manga después de muchas horas, no sólo se ha ganado en estabilidad y coherencia con los botones, sino que por si fuera poco, ahora el juego ha perdido la rigidez que le caracterizaba, de obligarte a hacer las cosas en un orden determinado y tal, siendo mucho más flexible con el jugador en cada momento.

Es esa flexibilidad la que me ha tenido muchas horas dándole vueltas a la cabeza y la que, para mi sorpresa, después de probar el resultado de lo codeado durante horas, funciona (creo — por ahora), de maravilla.

Estoy seguro de que os va a gustar tanto como esta quedando, que por un momento Jorge olvidará el tochazo de post que estoy poniendo y por otro el pánico (con fundamento) que nos ha metido pal cuerpo a todos la palabra ‘PERSISTENCIA’.

En fin, en subversión he subido lo que llevo. Estimo que es un 70% del total de la transición, no se la dificultad que nos puede acarrear lo que queda, pero espero que no sea mucha.

Lo que he hecho es:

*CLASE JUGADOR:
- Nuevo método valorTotal()
- Metodo comprobarSaldo(int cantidad) cambiado

*VISTA PRINCIPAL:
- Nuevo método desactivarBotones()
- Nuevo método activarBotonesComunes()
- Nuevo método activarBotones(int opcion), ATENTOS A LA MOVIDA
- Revisión COMPLETA de TODOS, TODOS!!! los jDialogs que existen, para adaptarlos al nuevo sistema. ¡¡ TODOS CON SUS BOTONES Y DISEÑO !! :S

-CLASE JUEGO:
- Método analizar PRÁCTICAMENTE NUEVO, LO VAIS A FLIPAR. El analizar() ahora te dice exactamente que pasa, y entre otras cosas, comprueba si el jugador tiene dinero y TODO !! Le da mascaito a la Vista el resultado de lo que tiene que hacer. Para conseguir esto, he tenido que preparar todos los jDialogs como dije antes, para que contemplen todas las posibles situaciones (Sin opcion de venta en Venta Terrenos, por ejemplo, etc…)

- variable pagoCompletado
- variable subastaRealizada

… en fin, creo haber tocado más cosas pero se me han olvidado apuntarlas seguro, de todas formas eso es lo fundamental.

Lo que queda:

- Falta por controlar en el nuevo analizar() de JUEGO y en activarBotones() de Vista principal los casos:

* Caer en Casilla Tarjeta

* Caer en Casilla Especial

- Estimar si hay que modificar el control de 3 tiradas seguidas sacando dobles o el tema de ir a la cárcel.

Situación de la práctica en Subversion:

-Como ahora mismo no esta terminado toda la transición, tengo “trucado” la lógica del juego. Los jugadores siempre empiezan en la casilla 1, y no 0 (por ser una casilla de calle y no especial), y si cuando tiran no caen en una casilla de calle, sp o estación, vuelven a tirar automaticamente de forma transparente al usuario, de forma que siempre se caiga en alguna zona controlada por ahora.

Dicho esto, podéis probar en esas circunstancias TODO lo que la práctica os vaya permitiendo. Si veis un botón activo, sin miedo, darle! y comprobad que pasa. Debería ser impetable en lo referente a la lógica de juego. Los jDialogs pueden tener fallos que no hayamos visto hasta ahora, pero eso es harina de otro costal.

Fallos conocidos / cosas a mejorar tras una prueba ligerita:

-Cambiar euros por creditos EN TODA LA PRÁCTICA = código, swing, etc. (€ por Cr, si os parece bien)

-Añadir sonidos en el comerciar, música de fondo, sonidos de compra y rechazo de oferta.

-El VENDER TERRENOS, cuando vendes terrenos intermedios no funciona. Intermedios y finales, vamos, que siempre vende el primer terreno que haya en el combobox del jugador. Pollo please, mira tu esto que sabras mejor el motivo.

-Revisar en GESTION EDIFICIOS, si el mensaje de “Puede edificar en el siguiente erreno:” y “Puede edificar en los siguientes terrenos” se muestra bien, según el caso.

Varias cosas

Pongo el reply mio de ayer en el blog mejor aquí, como post, para ir comentando durante este fin de semana todo lo que vaya viendo, tocando, corrigiendo, etc…

La parte de “control de rondas” está terminada y espero que no tenga fallos. Miraros los métodos cambiarTurno() y eliminarJugador() de JUEGO, y el BOTON CONTINUAR de Vista Principal (atención, entre otras cosas, el método cambiarTurno() de VistaPrincipal ha desaparecido y se ha fusionado con el ACTION PERFORMED del Boton Continuar). Hay un super-comentario en cambiarTurno() que DEBEIS leer :p.

He optimizado el tema todo lo que he podido y más, y analizado “en papel” mil situaciones de peligro donde podría petar, ya digo, creo que no petará… ojalá no me equivoque. Es vuestro turno de intentar petarme el control de rondas, porque la verdad que yo “jugando” no lo he podido probar, pero confío en él.

Por otra parte, ya está solucionado el warning de Collections.sort(), tras mucha investigación averigüe como usar Generics con el tema para que no diera más la lata.

FALLOS / COSAS A MEJORAR:

-En el jdialog comerciar se queda guardada la ultima info del ultimo comercio, aunque sea de otro jugador.

-El comerciar no compra cosas a los demas, pierdes las tuyas o ni eso, a veces se vuelve loco! XDDDD

-Caes en una calle de la que eres propietario y no te deja elegir la opción comerciar

-Cuando vendes para afrontar un pago, si consigues el dinero y vuelves a vender sin salir del menu de venta, al salir del menu de venta no puedes pagar porque ya no está activo el botón.

-Convendría evitar (si no es mu dificil) que se pueda comerciar con uno mismo.

-Faltan sonidos en el comerciar, música de fondo, de compra y rechazo.

-Salgo de comerciar sin hacer nada y … sólo está activo el botón continuar?! Antes tenía también GE y Venta Terrenos…

BALANCE DE LOS REQUISITOS

Hola, tras leer los requisitos que ha puesto Manuel de la Villa en la web de SWII, hago un balance para ver qué tenemos, qué no tenemos y qué podríamos tener:

Requisitos Vitales:

La satisfacción de estos requisitos es obligatoria para considerarse la práctica como aprobada

  • Coherencia lógica del proceso de desarrollo (SÍ)

  • Casilla de salida. (SÍ)

  • Mecanismo de caida en la carcel (Dado, tarjeta o casilla) (SÍ)

  • y salida de cárcel. (SÍ)

  • Parking libre (SÍ)

  • Cartas destinadas a la Suerte y a la Caja de Comunidad. (SÍ)

  • Terrenos a construir (SÍ)

  • Estaciones de trenes y servicio publicos (SÍ)

  • Al caer en una casilla, tratamiento de la compra (SÍ)

  • Subasta al mejor postor (SÍ)

  • Alquiler a los demás jugadores que caen en terrenos (SÍ)

  • Edificar Casas y Hoteles (SÍ)

  • Número no fijo de jugadores humanos (SÍ)

  • Componente gráfico, siguiendo el modelo vista-controlador (SÍ)

  • Uso de la persistencia para almacenar la lista de jugadores e histórico de pártidas. (EN PROCESO)

  • documentación de instalación y de usuario (EN PROCESO)

Requisitos Importantes

La mayoría de estos requisitos han de ser satisfechos para considerarse la práctica como aprobada

  • Dados y una ficha de un color diferente para cada jugador. (SÍ)

  • Control de bancarrota (SÍ)

  • Número fijado de rondas para acabar (SÍ)

  • Compraventa de terrenos entre jugadores (SÍ) => Un jugador puede comprarle a otro alguna propiedad que este tenga.

  • Hipoteca sobre tus Propiedades (NO SÉ) => No es una hipoteca propiamente dicha, pero se pueden vender al banco.

Requisitos que estarían bien:

Estos requisitos serán tenidos en cuenta y producirán una mejora notoria de los resultados, si bien no son imprescindibles para aprobar.

  • Uso de wiki en documentación de desarrollo (SÍ)

  • Uso de subversión en proceso de desarrollo (SÍ, no jodas….)

  • Almacenar/recuperar una partida de manera completa, a través del uso de la persistencia (ESTÁ POR VER)

  • Existencia de jugadores virtuales (NO,ni de coña xDD)

Nuevas Tarjetas

Pues aqui llevais una nueva apariencia para las tarjetas de suerte y de comunidad, llamadas ahora tarjetas de FOX RIVER y SONA respectivamente.

Un saludo.

Editado: Nueva versión de las tarjetas más arriba.

Sonidos casi completados

Pues eso, entre los que ha reunido Pollo y los que he reunido yo, esto está casi listo. Me queda 1 par de ellos, poco más, y estaran todos.

En la última versión de subversión tenéis el código preparado para cargar la música que he añadido (la de Pollo ya estaba), además de mejoras en VistaCreditos y VistaFinalPartida.

El audio es imposible subirlo por aquí (en RAR, ocupa 90 MB), mañana os lo paso que lo llevaré en el PEN.

A su vez, dejo puesto en la pestaña “Lo que queda” cosas que se me han ido ocurriendo mientras hacía los sonidos.

Con los deberes hechos

Hola! He hecho lo que me encargó lokoh y la verdad, pensé que iba a llevarme más tiempo del que me ha llevado. He hecho commit para que veais el resultado. Para Jesuli y Jorge, por si no os lo contó, lo que me encargó el lokoh era que cuando un jugador no pueda hacer frente a una deuda, se le informe y se le de la opción de vender un edificio o un terreno. Espero que os guste, porque funcionar, funciona :D

PD. Esto cambia las cosas un poco, en el sentido de que como yo esto pensaba hacerlo esta tarde, y ya está hecho, me podéis encargar que hagamos alguna otra cosa o bien que quedemos en experimentales para hacer la temática a saco y quitarnos de en medio trabajo.

Hasta pronto!!

Intentando persistir :D

Hola chicos. Hago resumen de lo que llevamos del tema de la persistencia:

- Creación y conexión a la base de datos

- Creación (conversión) de las clases a clases entidades con sus claves primarias (Jugador, Ficha, Casilla, Tarjeta-solo para la de la cárcel)

Y ahora os comento en qué punto estamos:

La persistencia nos dice que no soporta los ArrayLists, que ese tipo de dato no lo soporta. Para probar si lo que teníamos está bien, convertí los ArrayList a List, y de este modo, sí  crea las tablas correctamente, pero da un fallo a la hora de insertar los datos por problemas de conversión de tipos.

Le he enviado un correo a Manuel explicándole lo que nos pasa, a ver si hay alguna manera de que los arrayLists persistan.

He hecho commit con todos los métodos propios de la persistencia comentados, para poder ejecutar la partida y visualizar correctamente el tablero. (tened en cuenta al hacer update, que tendréis que modificar el fichero xml, para poner la ruta de vuestra BD y el login pass de vuestro usuario)

Saludos!!

PD: Jorge, como va con el buga nuevo??