sábado, 20 de mayo de 2006

UNO: aplicación web

Si, soy un adicto*. ¿Adicto a qué? Las opciones son muy variadas: TV, Internet, código limpio y elegante, maní japonés, cine, Joaquín Sabina, trotar… la lista sigue, dependiendo de las circunstancias y el momento. Ese no es el problema. La cuestión es que cuando algo me gusta en muy poco tiempo, incluso en cuestión de días, ya me ha llegado a la médula, y se convierte en un "imperativo categórico kantiano"... Si, también soy un poco adicto a la exageración ;-)

Uno de mis días normales incluye al menos 12 horas cosido al computador. A veces, no muy raras las veces, incluso algunas horas más. Siempre hay algo que hacer, que leer, que revisar, que aprender, etc. Así que cuando logro descoserme de la silla y salir al mundo real, suelo disfrutar al máximo cada una de esas otras actividades a las que dedico tiempo (si, normalmente alguna otra adicción).

Entre esas otras adicciones está la regular reunión para jugar UNO. Un lugar tranquilo, un grupo variopinto de amigos que, al igual que yo, deja cualquier cosa que les perturbe fuera de la mesa de juego, y se dedican a sólo pasarla bien, a dejar que un poco de estrategia, mucha de suerte, y el pacto de caballeros de siempre jugar limpio y sin trampas, nos haga la noche, nos haga reír, y a veces, nos haga ganar.

En algún momento de sus inicios, cuando la cosa se empezó a regularizar, alguien empezó a llevar en un cuaderno (y luego en Excel) el registro de los juegos, las estadísticas de la adicción. Hace poco alguien sugirió que sería bueno tener una web para esas estadísticas. A ver, ¿ya mencioné entre mis adicciones a Internet, el código limpio y elegante, y el UNO? ¿Acaso me faltó mencionar que entre las nuevas adquisiciones a mi lista de adicciones está Ruby on Rails? El resultado era inevitable.

UNO: la aplicación web

El diseño de la aplicación es bastante sencillo: tenemos temporadas, jugadores, juegos (cada noche de reunión es un "juego") y partidas (en cada juego hacemos cuatro partidas, que están conformadas por n manos, y que duran hasta que algún jugador alcanza los 500 puntos en la partida; las manos no se registran en la aplicación, sólo el orden final de los jugadores en la partida).

 Posición  Puntos 
110
26
34
43
52
61
 7 y posteriores 0

A los lugares resultantes de cada partida se les asigna puntos según la tabla de al lado, sistema de puntos basado en las carreras de Fórmula 1 (¿Quién de Uds. ya había adivinado esa adicción en mi lista, adicción también compartida por la mayoría de los recurrentes a esta mesa de UNO?). Esos puntos se suman para generar los resultados generales del juego. Y las posiciones resultantes de cada juego se pasan por esta misma tabla de puntos para generar los resultados generales de la temporada.

La página inicial muestra un resumen de cada temporada: posiciones generales de la temporada (lugares, puntos y promedios, en texto y gráficos) y posiciones resumidas de cada juego uno de los juegos.

Y la página de cada jugador incluye estadísticas del jugador, por temporada: frecuencia de posiciones finales (en texto y gráficos), total de puntos y promedios.

Cada uno de estos elementos es bastante flexible, desde la aplicación misma, que no necesariamente tiene que ser usada solo para registros de UNO, sino que pudieran registrarse juegos en general, o cualquier serie de eventos con registro de lugares o posiciones finales. Las temporadas pueden ser un período de tiempo, o pueden usarse como registro de equipos o ligas, o cualquier otra cosa en que se quieran separar un grupo de juegos. Cada juego puede tener desde una hasta el número de partidas que se quiera, y desde uno hasta el número de jugadores que se quiera. Lo único fijo, por ahora, es el sistema de puntuación para las posiciones resultantes, tanto por juego, como por temporada.

En este momento el acceso está restringido sólo a nosotros, los que jugamos en este grupo de UNO, pero si alguien está interesado en tener acceso a una web de este tipo para su propio grupo, podría escribirme un correo: si hay suficiente interés yo estaría dispuesto a publicar la web para crear grupos nuevos. Incluso, si me mandas una buena historia de obsesos de UNO, te podría mandar el código de la aplicación :-)

* Uso el término "adicción" como una manera de fácil de hacerme entender, sin explicar mucho mis razones detrás de cada una de estas actividades. Yo en realidad las considero "las cosas que me apasionan". En el blog Creating Passionate Users, Kathy Sierra tiene un excelente artículo sobre las cosas que nos apasionan, y las razones detrás de ellas

¿Te gustó este artículo? Digg it!

5 comentarios:

Anónimo dijo...

El UNO arruinó mi afición a cualquier otro juego de cartas. Además estoy en contra de las versiones alternativas del UNO,como el UNO-Stacko y demás. Encontré tu pag buscando información sobre Rails. Estoy aprendiendo Rails con mucho esfuerzo pero con mucho gusto. Si esta aplicacion la hiciste en Rails me gustaría mucho poder ver el código para aprender algo nuevo. Soy desarrollador de aplicaciones VB desde hace muchos años y estoy esforzándome mucho para entrarle al Rails; si te interesa compartir información pues contáctame con confianza. Saludos desde México!!

Anónimo dijo...

sorry, olvide poner mi mail
najurails@gmail.com

Juan Riera dijo...

La suma de adicciones instantaneas y la exageracion exacervada son caracteristicas propias de mas de un informaticó. ¿Cuando jugamos UNO?

Anónimo dijo...

Amigo ya-no-volador!!! No podia yo esperar menos que este tipo de desarrolo de su parte. Ha de saber que varios amigos y yo estamos interesados en este sistema, llegandose incluso a plantear un posible Inter-Ligas? Ya veremos. Por lo pronto le dejo esta pregunta: Esta disponible como aplicacion o solo como web? De ser aplicacion, para que sistema? Ha considerado desarrollarla para equipos moviles (pocket win o symbian)? Seria muy util a la hora de llevar estadisticas anywhere-anytime.

Saludos desde Caracas.

Nacarid dijo...

Peeerro Jesús tantos cálculos y orden me enredaron, ya no sé de qué se trata el Juego jejejej. Que fino que existan aún las comunidades que les guste reunirse para disfrutar de un divertido juego de mesa :)