akualung
08/11/2007, 10:46
Hola, vecinos. Escribo para ver si alguien me podría echar una mano con un ejercicio que nos han puesto en nuestro ciclo formativo. Consiste en realizar un juego de trivial pursuit realizado con html y DOM.
El año pasado hicimos uno de trivial pero era facilísimo ya que solo era hacer las preguntas y las respuestas, pero este año han cambiado de profe y, la que hay ahora, se ve que se ha "emocionado" mucho y quiere que lo hagamos con tablero, piezas, etc.
Os pego el enlace al pdf donde explica el enunciado del ejercicio (el enunciado está en catalán, más abajo os he traducido el texto):
http://agora.escoladeltreball.org/Departaments/Informatica/dai/credit-8-case/unitat-didactica-1-dom-document-object-model/practica.pdf/view
Traducción:
CFGS DAI - C8 Práctica DOM
“DAI Trivial Pursuit”
La práctica consiste en hacer un juego online similar al famoso “Trivial Pursuit”. El juego tendrá 8 temas:
• Sistemas operativos
• redes
• Bases de datos
• Análisis y diseño de aplicaciones informáticas
• Python
• Java
• Programación web
• Java Swing
El tablero tendrá este aspecto:
(ver imagen en el pdf)
Requisitos del juego:
• Dos jugadores
• Para moverse por el tablero se tirará un dado. Se puede avanzar en cualquier dirección, y desde la aplicación se deberá indicar a qué casillas puedes desplazarte según la puntuación del dado.
• Cada casilla tendrá un tema. Si ésta se acierta, se seguirá jugando. Si no, el turno pasará al siguiente jugador.
• Si el jugador cae en una de las casillas "destacadas" y la acierta, ganará un "quesito" del color correspondiente.
• Cuando se tengan los seis "quesitos", se deberá ir a la casilla central y acertar una pregunta de un tema al azar. Si la acierta, el jugador habrá ganado.
-----------------------------------------------------
Pues eso. La mecánica del juego en sí, no veo que entrañe excesiva dificultad, pero me he quedado estancado en cómo calcular las posiciones a las que te puedes mover. Es que no sé, lo veo complicado, porque la única forma que se me ocurre es con recursividad, pero por mucho que lo pienso no consigo encontrar la manera.
Un ejemplo: Te encuentras a dos pasos (considero como "paso" el avanzar una casilla) de distancia de la casilla central. Tiras el dado y sacas un 5. Pues bien, si decides alejarte de la casilla central, no es dificil calcular a que casilla te llevará ese camino. Pero si decides tirar hacia la casilla central, entonces es un cacao, porque tú te mueves dos casillas (te quedan 4 pasos, ahora 3...) y cuando te encuentras en la casilla central ves que tienes que multiplicar esos 3 pasos que te quedan por tantas bifurcaciones como tenga la casilla. Es decir, son 3 pasos que te quedan, multiplicado por 7 bifurcaciones que tiene esa casilla central (de la casilla central parten 8 caminos, pero solo contamos siete porque no hemos de contar el camino por el que hemos venido) Me explico?
Por lo que he visto, en este juego hay 3 tipos de casilla: las normales (que solo tienen dos casillas adyacentes, la que tienen delante y la que tienen detrás), las de "quesito" que tienen 3 casillas adyacentes, y la central, que tiene 8. Me he intentado mirar por internet tutoriales sobre árboles recursivos y cosas así, pero no me entero de nada, apenas hemos dado recursividad en mi cole (tengo entendido que, incluso en la uni, la recursividad es un tema que se da cuando la carrera está algo avanzada).
En resúmen, que estoy hecho un **** lio. Sencillamente, sé lo que he de hacer pero no sé cómo implementarlo. Si se os ocurriera cómo implementar mi idea u otra manera más sencilla de calcular a dónde te deja mover cada tirada del dado, os agradecería mucho la ayuda, porque ahí estoy sencillamente clavado.
Gracias. Si me echais un cable, prometo intentar portarlo a la gp2x :)
El año pasado hicimos uno de trivial pero era facilísimo ya que solo era hacer las preguntas y las respuestas, pero este año han cambiado de profe y, la que hay ahora, se ve que se ha "emocionado" mucho y quiere que lo hagamos con tablero, piezas, etc.
Os pego el enlace al pdf donde explica el enunciado del ejercicio (el enunciado está en catalán, más abajo os he traducido el texto):
http://agora.escoladeltreball.org/Departaments/Informatica/dai/credit-8-case/unitat-didactica-1-dom-document-object-model/practica.pdf/view
Traducción:
CFGS DAI - C8 Práctica DOM
“DAI Trivial Pursuit”
La práctica consiste en hacer un juego online similar al famoso “Trivial Pursuit”. El juego tendrá 8 temas:
• Sistemas operativos
• redes
• Bases de datos
• Análisis y diseño de aplicaciones informáticas
• Python
• Java
• Programación web
• Java Swing
El tablero tendrá este aspecto:
(ver imagen en el pdf)
Requisitos del juego:
• Dos jugadores
• Para moverse por el tablero se tirará un dado. Se puede avanzar en cualquier dirección, y desde la aplicación se deberá indicar a qué casillas puedes desplazarte según la puntuación del dado.
• Cada casilla tendrá un tema. Si ésta se acierta, se seguirá jugando. Si no, el turno pasará al siguiente jugador.
• Si el jugador cae en una de las casillas "destacadas" y la acierta, ganará un "quesito" del color correspondiente.
• Cuando se tengan los seis "quesitos", se deberá ir a la casilla central y acertar una pregunta de un tema al azar. Si la acierta, el jugador habrá ganado.
-----------------------------------------------------
Pues eso. La mecánica del juego en sí, no veo que entrañe excesiva dificultad, pero me he quedado estancado en cómo calcular las posiciones a las que te puedes mover. Es que no sé, lo veo complicado, porque la única forma que se me ocurre es con recursividad, pero por mucho que lo pienso no consigo encontrar la manera.
Un ejemplo: Te encuentras a dos pasos (considero como "paso" el avanzar una casilla) de distancia de la casilla central. Tiras el dado y sacas un 5. Pues bien, si decides alejarte de la casilla central, no es dificil calcular a que casilla te llevará ese camino. Pero si decides tirar hacia la casilla central, entonces es un cacao, porque tú te mueves dos casillas (te quedan 4 pasos, ahora 3...) y cuando te encuentras en la casilla central ves que tienes que multiplicar esos 3 pasos que te quedan por tantas bifurcaciones como tenga la casilla. Es decir, son 3 pasos que te quedan, multiplicado por 7 bifurcaciones que tiene esa casilla central (de la casilla central parten 8 caminos, pero solo contamos siete porque no hemos de contar el camino por el que hemos venido) Me explico?
Por lo que he visto, en este juego hay 3 tipos de casilla: las normales (que solo tienen dos casillas adyacentes, la que tienen delante y la que tienen detrás), las de "quesito" que tienen 3 casillas adyacentes, y la central, que tiene 8. Me he intentado mirar por internet tutoriales sobre árboles recursivos y cosas así, pero no me entero de nada, apenas hemos dado recursividad en mi cole (tengo entendido que, incluso en la uni, la recursividad es un tema que se da cuando la carrera está algo avanzada).
En resúmen, que estoy hecho un **** lio. Sencillamente, sé lo que he de hacer pero no sé cómo implementarlo. Si se os ocurriera cómo implementar mi idea u otra manera más sencilla de calcular a dónde te deja mover cada tirada del dado, os agradecería mucho la ayuda, porque ahí estoy sencillamente clavado.
Gracias. Si me echais un cable, prometo intentar portarlo a la gp2x :)