Autor Tema: Competición Tron  (Leído 1098 veces)

alex

  • Commodore Master
  • *****
  • Mensajes: 3106
    • Ver Perfil
Competición Tron
« en: Marzo 02, 2024, 09:51:17 »
http://www.vic20listings.freeolamail.com/mag_commag_es.html

Continuamos con la Commodore Magazine en el disco 1. Un poco más abajo tenemos el programa Tron.

Ya tenemos mejores gráficos. Nuestro objetivo es conducir una moto de luz y limpiar la rejilla de programas.

Jugaremos al modo FÁCIL. Os dejo con la sección de Javierglez que nos comenta el listado y nos ofrece muchas modificaciones interesantes para teclear.

La competición comienza hoy mismo y finaliza el Domingo 17 de Marzo por la mañana (España)

                                               El rincón de Javierglez

                         

"Tron"

El título hace pensar en un juego para dos jugadores pero no. Es un jugador que tiene que ir abriendo una ruta para recoger todos los pasajeros de una tirada.
Son dos listados. El primero tiene los datos de los gráficos en líneas DATA. Es típico en los programas de VIC20. Un byte de gráficos en un programa BASIC usando líneas DATA requiere varios bytes. El primer listado se ocupa de cargar el segundo, una vez que los gráficos están en la memoria.

Lo primero que voy a comentar es que el programa tiene un bug que hace que rara vez, pero puede pasar, no se pueda acabar el nivel. Veamos la linea 98

98 FORN=1TOMAN:RP=INT(RND(1)*506)+7680:IFPEEK(RP)<>2 THENRP=RP+1
99 POKERP,10:NEXTN


Lo que hace al poner los pasajeros en el tablero es sacar una casilla de manera aleatoria. RP es la posición de la casilla. Si sale dos veces la misma mete el pasajero en la casilla siguiente, que es RP+1. Pero no controla si ya puso otro pasajero también. En ese caso habrá en pantalla un pasajero menos y no se podrá acabar el nivel.

Pero además el programa utiliza la columna 0 de la pantalla para detectar si el jugador se sale de la zona de juego. Si el jugador se mete en la columna 0 es que se ha salido por el margen izquierdo o por el derecho. Si RP está en la columna 22, RP+1 está en la columna 0. Además no se notará el error, porque esa columna está en color negro.

La fórmula aleatoria de la línea 98 también puede dar una casilla de la columna 0. En este caso el pasajero pasa a la columna 1, sin controlar si ya hay otro pasajero.

Tenéis 2 opciones:

- Jugar con el bugo. Lo vais a notar poco pero cuanto más alto es el nivel más probable es que pase.

- Corregir el bugo:

Sería algo más fácil si el autor no hubiera apegotonado las lineas 96-97-98-99-100-101-102-103-104-105-106-107.

Las líneas 80,96,97,98,99,100,101,102 renumerarlas a 55,60,65,70,80,85,90,95 para hacer hueco. Borrar 96,97,98,99,101,102. Ahora la linea mala es la 70 en vez de la 98.

Lo que originalmente era:
98 FORN=1TOMAN:RP=INT(RND(1)*506)+7680:IFPEEK(RP)<>2 THENRP=RP+1
Dividirlo en dos líneas así.
70 FORN=1TOMAN
75 RP=INT(RND(1)*506)+7680:IFPEEK(RP)<>2 THEN75

La línea 0 del segundo listado lo que hace es cambiar la semilla de la secuencia de números pseudoaleatorios, lo que era RANDOMIZE en otros ordenadores. De lo contrario siempre salen los mismos circuitos en la primera partida tras arrancar el ordenador. La línea 0 se puede quitar si se desea.

Cambios:
- El programa tiene un defecto fastidioso que cuando acaba la partida no quita los ruidos. Hay que editar la linea 4000 para que quede
4000 POKE36874,0:POKE36875,0:POKE36876,0:FORKN=1TO10

- Cambiar las teclas por QAOP. Es especialmente fácil porque la tecla la saca con GETA$. Podéis hacer LIST 120-150 y editar para cambiar "z", "x", "l", "," por "o", "p", "q", "a".

- Que pregunte el nivel de dificultad sólo una vez al principio:
quitar las lineas 4200, 4210, 4215
editar la linea 4160 IFA$="S"THENGOTO4200
cambiar ese 4200 por 4220, la línea debe quedar
4160 IFA$="S"THENGOTO4220

Voy a poner en minuscula para que podais copiar aqui y pegar en VICE esos 3 cambios.
120 ifa$="o"thend=-1:wt=4:ch=0
130 ifa$="p"thend=1:wt=4:ch=0
140 ifa$="q"thend=-22:wt=3:ch=0
150 ifa$="a"thend=22:wt=3:ch=0
4000 poke36874,0:poke36875,0:poke36876,0:forkn=1to10
4160 ifa$="s"thengoto4220
4200
4210
4215

Otras modificaciones.

Estaría bien que el programa esperara un segundo para planificar la ruta. Esto sería fácil si el autor no hubiera apegotonado las lineas 96-97-98-99-100-101-102-103-104-105-106-107. Pero como hay que corregir el bug, de perdidos al río.
- el segundo de espera va a la línea 100 FORT=1TO1000:NEXT
- lo que era 100 IF TYU=1 THEN 103 ahora es 85 IF TYU=1 THEN 100

Podéis copiar aquí y pegar en VICE para hacer este cambio y de paso quitar el bug:

55 forn=38400to38905:poken,6:next
60 forn=7680to8164step22:poken,9:next
65 forn=38400to38884step22:poken,0:next
70 forn=1toman
75 rp=int(rnd(1)*506)+7680:ifpeek(rp)<>2 then75
80 poke rp,10:nextn
85 if tyu=1 then 100
90 forn=1to10:sp=int(rnd(1)*506)+7680:ifpeek(sp)<>2thensp=sp+1
95 pokesp,230:pokesp+30720,0:next
96
97
98
99
100 fort=1to1000:next
101
102
103 pokea,ch:pokea+30720,2:pokea+(-d),wt

Hasta aquí llegó la marea.




« última modificación: Marzo 09, 2024, 18:56:34 por alex »

alex

  • Commodore Master
  • *****
  • Mensajes: 3106
    • Ver Perfil
Re:Competición Tron
« Respuesta #1 en: Marzo 03, 2024, 11:53:51 »

Jeff

  • Commodore Master
  • *****
  • Mensajes: 821
  • RUN/STOP + RESTORE
    • Ver Perfil
Re:Competición Tron
« Respuesta #2 en: Marzo 03, 2024, 13:50:46 »
Efectivamente, cambiando a QAOP, se juega de manera mas natural, como en el Spectrum (¿Que es un Spectrum?)

Está entretenido. Saca un poco de quicio que ponga casi todos los muñequitos pegados a la pared.  :o

Press ANY key (¿Donde esta la tecla ANY???)

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13745
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Competición Tron
« Respuesta #3 en: Marzo 03, 2024, 14:33:28 »
Casi que dan ganas de meter una linea de codigo mas para que genere una buena puntuación :D
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

javierglez

  • Commodore Master
  • *****
  • Mensajes: 463
  • terminator not seen
    • Ver Perfil
Re:Competición Tron
« Respuesta #4 en: Marzo 03, 2024, 15:53:01 »
Este lo he tenido que jugar más

* 2024-02-25 (3).png (23.24 kB . 749x698 - visto 90 veces)

alex

  • Commodore Master
  • *****
  • Mensajes: 3106
    • Ver Perfil
Re:Competición Tron
« Respuesta #5 en: Marzo 03, 2024, 16:17:26 »
Zasca!!!,el gran Javierglez deja muy claro quien es el programador jefe de Encom.
Buena puntuación de Jeff,aupa Axturias!!!.

********CLASIFICACION PROVISIONAL*********

1 Javierglez...............................1.600  puntos
2 Alex.......................................830    puntos
3 Jeff........................................680    puntos

alex

  • Commodore Master
  • *****
  • Mensajes: 3106
    • Ver Perfil
Re:Competición Tron
« Respuesta #6 en: Marzo 03, 2024, 17:14:27 »
Progresando ligeramente.Me quedo con la chica original. ;)


********CLASIFICACION PROVISIONAL*********

1 Javierglez...............................1.600  puntos
2 Alex.......................................840    puntos
3 Jeff........................................680    puntos

Bieno

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 3993
  • PRINT"ADORA A TU COMMODORE"
    • Ver Perfil
    • bieno64
Re:Competición Tron
« Respuesta #7 en: Marzo 03, 2024, 19:38:05 »
Jugar con teclas nunca se me dió bien.



520 puntos

alex

  • Commodore Master
  • *****
  • Mensajes: 3106
    • Ver Perfil
Re:Competición Tron
« Respuesta #8 en: Marzo 03, 2024, 19:46:22 »
Vic-Bieno entra en juego.La cosa se anima.

********CLASIFICACION PROVISIONAL*********

1 Javierglez...............................1.600  puntos
2 Alex.......................................840    puntos
3 Jeff........................................680    puntos
4 Bieno.....................................520    puntos

javierglez

  • Commodore Master
  • *****
  • Mensajes: 463
  • terminator not seen
    • Ver Perfil
Re:Competición Tron
« Respuesta #9 en: Marzo 04, 2024, 20:59:40 »
Parece ser que es un listado un poco complicado de editar y Alex y la gente están teniendo problemas para editarlo. Aquí os pongo un vídeo a ver si queda algo más claro

Que conste que hay varias maneras de hacerlo yo solo he puesto aquí la que me resulta más cómoda que además sólo utiliza el emulador y el DirMaster.

https://youtu.be/WfwXzaB_cC0

Saludos y suerte
« última modificación: Marzo 04, 2024, 21:01:48 por javierglez »

alex

  • Commodore Master
  • *****
  • Mensajes: 3106
    • Ver Perfil
Re:Competición Tron
« Respuesta #10 en: Marzo 05, 2024, 14:14:23 »
También se puede teclear a mano no?,es lo que hago,copio el listado y listo.

alex

  • Commodore Master
  • *****
  • Mensajes: 3106
    • Ver Perfil
Re:Competición Tron
« Respuesta #11 en: Marzo 05, 2024, 14:20:28 »
Entiendo que a partir de la línea 50 tengo que teclear la modificación.¿Es eso no?.En plan fácil y clásico.

alex

  • Commodore Master
  • *****
  • Mensajes: 3106
    • Ver Perfil
Re:Competición Tron
« Respuesta #12 en: Marzo 05, 2024, 14:33:57 »
Ostras!!!,estaba en la rejilla 10,la limpio y no paso de pantalla.Me he quedado dando vueltas como un tonto sin saber que hacer.Me cago en ese puto Bug.


********CLASIFICACION PROVISIONAL*********

1 Javierglez...............................1.600  puntos
2 Alex.......................................1.440  puntos
3 Jeff........................................680    puntos
4 Bieno.....................................520    puntos

javierglez

  • Commodore Master
  • *****
  • Mensajes: 463
  • terminator not seen
    • Ver Perfil
Re:Competición Tron
« Respuesta #13 en: Marzo 05, 2024, 14:46:15 »
Entiendo que a partir de la línea 50 tengo que teclear la modificación.¿Es eso no?.En plan fácil y clásico.

Si claro, la clave es apañarselas para poner las modificaciones en el segundo listado.
Ostras!!!,estaba en la rejilla 10,la limpio y no paso de pantalla.Me he quedado dando vueltas como un tonto sin saber que hacer. Me cago en ese puto Bug.
Vaya pues no se. El principal objetivo de ese listado era hacer hueco para poder cambiar la linea 98, que no aseguraba que se metiese el pasajero (codigo 10) solo donde hubiese una celda despejada (codigo 2), por las lineas 70 y 75 qe si deberian asegurarlo.

alex

  • Commodore Master
  • *****
  • Mensajes: 3106
    • Ver Perfil
Re:Competición Tron
« Respuesta #14 en: Marzo 05, 2024, 14:51:37 »
No,no!,he jugado sin la modificación,¡ojo!,he querido probar a ver ese bug o que pasaba antes de ponerme a teclear.Está claro que no me pasa más.Esta tarde me pongo a picar teclas como cuando era niño.