Tron escribió:1. ¿Cuál es la diferencia exacta entre EASY y MEDIUM?
La respuesta sería... la misma que hay entre MEDIUM y HARD

Y la misma que hay entre HARD y HARDEST
El nivel de dificultad se traduce en el juego en un valor entre 0 y 3. Se usa para inicializar un parámetro de "inquina" o "querencia a ir hacia el Pengo". La fórmula que se utiliza es:
inquina = 12 - ( (número de fase - 1) / 4 + dificultad )
De esta forma, cada cuatro fases, y aumentado por el nivel de dificultad, se reduce el tiempo que el Sno-bee vuelve a pensar en ir hacia el Pengo.
Tron escribió:2. ¿Qué hará el programa cuando la última abeja se escape y se ejecute en el centro del diamante en esta configuración. X son los diamantes.
Esta formación se llama sándwich.
Cuando un Sno-bee entra en modo "huida", elige un sentido al azar (arriba, abajo, izquierda o derecha). Su objetivo es llegar a un muro, donde volverá a escoger una ruta también al azar (arriba/abajo en las paredes verticales, izquierda/derecha en las horizontales).
El problema está si, en ese recorrido, se encuentra con un diamante. Según la lógica del programa, escogerá un nuevo camino al azar e intentará llegar allí. Pero, estando en la posición A, el único camino posible es volver a B. Una vez allí, el Sno-bee vuelve a retomar el sentido elegido al principio, por lo que vuelve a entrar en A, y así lo hará de forma indefinida.

- animated.gif (77.15 KiB) Visto 17423 veces
El beneficio que obtenemos es que podremos romper todos los bloques de hielo que queden en la pantalla.

- 0027.png (2.14 KiB) Visto 17423 veces
En este caso, hemos obtenido 1650 puntos (55 bloques × 30 pts/bloque). Es una ganancia solo si llevamos más 29 segundos de juego (premiados con 1000 pts. o menos).
Tron escribió:3. Explique de nuevo por qué los actos 5, 9 y 13 son los más peligrosos.
Se produce un cambio brusco en el comportamiento de los Sno-bees, explicado en el punto 1: cada 4 pantallas, se reduce el tiempo que los Sno-bees vuelven a fijarse en las coordenadas del Pengo.
Tron escribió:4. ¿Puede una abeja ser aturdida en la ubicación de un bloque de hielo o diamante que no está roto?
Sí. Hay varios casos en los que puede ocurrir.
Un primer caso es cuando el Sno-bee ocupa una posición libre de bloques justo después de que la posición se vaya a ocupar con un diamante, y formar un trío. Más detallado:
El Sno-bee (S) se dirige hacia una posición vacía, justo delante de los diamantes. Mientras, el Pengo (P) ha empujado el tercer diamante (X). Si el diamante llega a esa posición justo antes de que el Sno-bee la ocupe, la unión de los tres diamantes provocará el aturdimiento de los Sno-bees, y en el caso del Sno-bee que se acerca, hará que ocupe la misma posición que el diamante. Aún así, se le podrá aplastar, si Pengo empuja precisamente ese diamante en alguna dirección que permita desplazarlo.

- sobre_bloque.gif (9.82 KiB) Visto 17310 veces
Otro caso parecido sucede cuando se dispara un bloque de hielo normal delante de un Sno-bee, de la misma forma que en el caso anterior (el bloque de hielo llega antes que el Sno-bee, a la misma posición), y justo después el Pengo une los diamantes o sacude el muro.
Tron escribió:5. ¿Puede una abeja moverse a través de un bloque sin romper el bloque?
Sí. El programa tiene un límite de seis bloques "rompiéndose" al mismo tiempo. En los "actos" más altos, puede suceder que todos los Sno-bees estén rompiendo bloques, y si el Pengo rompe varios en secuencia (Pengo puede romper dos bloques si lo hace muy rápido) eso provoca que el búfer de animaciones de bloques que se están rompiendo se llene, y entonces la animación no aparece, por lo que el bloque de hielo sigue en pantalla, con el Sno-bee andando encima de él. Se trata de un fallo del programa, nada más.
Otra situación ocurre si se da el caso comentado en la pregunta anterior: si se empuja un bloque de hielo en el camino que sigue un Sno-bee, si el bloque llega justo antes que el Sno-bee, y se detiene, el Sno-bee "caminará" por encima de él. No lo romperá porque, sencillamente, no lo ha visto. Mejor dicho: cuando el Sno-bee miraba esa posición, no había ningún bloque.
Tron escribió:6. ¿Cuántos laberintos hay en Pengo? ¿Cuál es el número exacto?
9. Hay laberintos que a menudo aparecen, y algunos laberintos que rara vez aparecen. ¿Por qué pasa esto?
10. ¿Están disponibles todos los laberintos de la ROM de Pengo y se pueden usar en el juego?
Los laberintos se generan de forma aleatoria. No están almacenados en ROM.
El proceso es el siguiente: se colocan los muros, se pintan todos los bloques, se vacía la casilla inferior izquierda, y a partir de ella se "vacían" pasillos de dos bloques de largo elegidos de forma aleatoria. Del punto final de ese pasillo se vuelve a escoger otra ruta aleatoria. Si no hay más rutas posibles, se vuelve a analizar, empezando por la esquina inferior izquierda, aquellos pasillos con rutas posibles. Y así, hasta que se hayan generado todos los pasillos.
El proceso de selección de la ruta (izquierda, derecha, arriba y abajo) se hace sacando un valor al azar.
El generador de números aleatorios es muy simple. La fórmula es (usando registros de 16 bits):
hl := (valor aleatorio anterior)
bc := hl
hl := 3 x hl
a := h + c
h := a
(nuevo valor aleatorio) = hl
Pero no se toma este valor, si no el que tiene 'a' al salir del procedimiento.
El programa siempre empieza con la misma semilla: $365A
No lo he mirado con detalle, pero sería interesante averiguar cuanto tiempo tarda el generador de números aleatorios en repetir la secuencia.
En la mayor parte de los casos, del número aleatorio solo se aprovecha los bits más bajos. Por ejemplo, en el tema de generar los pasillos del laberinto, se miran los dos primeros bits para sacar un valor entre 0 y 3.
Habría que hacer un estudio estadístico para ver qué valores se repiten más, pero podemos ver que los laberintos tienden a tener largos pasillos verticales, de la misma manera que el Sno-bee que huye tiene tendencia a huir hacia la esquina inferior derecha.
Al final, esto produce un reducido número de laberintos diferentes.
Tron escribió:7. Después de la Act 16, ¿el juego juega más duro? Por ejemplo, ¿es la Act 17 más difícil que la Act 1? ¿Es la Act 33 más difícil que la Act 1? ¿Es diferente el comportamiento del programa en estos niveles superiores?
8. ¿Hay una pantalla de matar para Pengo? Por ejemplo, si usted juega Act 256 o Act 257, el juego seguirá jugando como normal
Los actos van del 1 al 16, y luego se repite, de forma indefinida. No hay ninguna pantalla final que provoque la muerte del Pengo.
Lo que sí puede suceder es un fallo del programa en el control del número de Sno-bees en juego, haciendo que se generen Sno-bees de forma ilimitada, e imposibles de matar, ya que aparecen fuera de los límites del juego.