BattleShips-1K para ZX-81

Foro dedicado a la programación en todo tipo de sistemas clásicos.
Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: BattleShips-1K para ZX-81

Mensajepor antoniovillena » 19 Jul 2014, 17:41

He pasado el código fuente a ZMakeBas, más que nada para depurar errores en el mismo. No obstante te adjunto el archivo por si te pudiera servir.

El código fuente tiene este aspecto:

Código: Seleccionar todo

@ltd: LET D= CODE "\!'"
@ltm: LET M= 0|16444
@prn: PRINT "\::\0\1\2\3\4\5\6\7\8\9"
@frf: FOR F= VAL "166" TO VAL "175"
@prf:   PRINT CHR$ F
@nxf: NEXT F
@frg: FOR F= NOT PI TO VAL "4"
#@gsb:   GOSUB @inp
@gsb:   GOSUB CODE "Y"
@pat:   PRINT AT Y + SGN PI, X + SGN PI; "oo"
@pok:   POKE M+F, RND*CODE "<" + F*CODE "="
@nxg: NEXT F

@lty: LET Y= RND*D + SGN PI
@ltx: LET X= RND*D + SGN PI

@pxy: PRINT AT INT Y, INT X;
@ltf: LET F= PEEK( PEEK 0|16398 + VAL "256"*PEEK 0|16399 )
#@iff: IF F=CODE "X" THEN GOTO @lty
@iff: IF F=CODE "X" THEN GOTO CODE "4"
@prx: PRINT "X"; AT D+D, NOT PI;
#@ifo: IF F<>CODE "o" THEN GOTO @gsy
@ifo: IF F<>CODE "o" THEN GOTO CODE "M"
@inx: LET X= X+SGN PI-(VAL "2" AND X>=D)
#@got: GOTO @pxy
@got: GOTO CODE "8"

#@gsy: GOSUB @inp
@gsy: GOSUB CODE "Y"
@frh: FOR F= M TO M+VAL "4"
@ify:   IF   Y*D+X=PEEK F\
          OR Y*D+X=PEEK F + SGN PI THEN PRINT "HIT"
@nxh: NEXT F
@prs: PRINT "   "
#@gou: GOTO @lty
@gou: GOTO CODE "4"

@inp: INPUT A$
@ley: LET Y= CODE A$(SGN PI)-CODE "A"
@lex: LET X= VAL A$(VAL "2")
@ret: RETURN


Los cambios realizados (he intentado minimizarlos) son:
  • Empleo de etiquetas en lugar de números. Esto facilita la edición, ya que puedes insertar líneas sin tener que renumerar las adyacentes. Para facilitar optimizaciones con CODE se deja la línea comentada y se hace el cambio al final (dejando comentado el salto a la etiqueta).
  • Para mejorar legibilidad: identación de FOR, partir alguna línea con \ y dejar una línea en blanco sobre todas las etiquetas que pueden recibir saltos o llamadas a subrutina.
  • Los números de 5 dígitos codificados con VAL"" los cambio con 0| ya que ocupan un byte menos.
Adjuntos
battle.zip
(38.21 KiB) Descargado 258 veces

dancresp
Amiga 1200
Amiga 1200
Mensajes: 1393
Registrado: 23 Dic 2008, 17:53
Sistema Favorito: MSX
primer_sistema: ZX81
Primera consola: Atari 2600
Gracias dadas: 3 veces
Gracias recibidas: 20 veces

Re: BattleShips-1K para ZX-81

Mensajepor dancresp » 21 Jul 2014, 23:42

antoniovillena escribió:He pasado el código fuente a ZMakeBas, más que nada para depurar errores en el mismo. No obstante te adjunto el archivo por si te pudiera servir.

Curiosa herramienta, me la descargo.

He probado el ".p" que pasas y me ha funcionado perfectamente, sin dar errores de memoria.
Buscando la IP de la W.O.P.R.

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: BattleShips-1K para ZX-81

Mensajepor antoniovillena » 22 Jul 2014, 03:09

dancresp escribió:Curiosa herramienta, me la descargo.

He probado el ".p" que pasas y me ha funcionado perfectamente, sin dar errores de memoria.


Para mí es mucho más práctico editar el código fuente en ASCII desde un PC, convertir a .P y pasar el archivo a emulador para probarlo. Me extrañaba (a lo mejor estoy equivocado) que no existiese nada parecido para ZX81. Si te planteas usarla cuenta conmigo para el soporte técnico.


Volver a “Programación”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 35 invitados