Autor Tema: [SPEC] - Evitar IF innecesarios al programar  (Leído 731 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado empardopo

  • Admin
  • *
  • Mensajes: 22129
  • Gracias 763
  • Espero mejorar al KungFu Master!
    • Mi canal de Youtube
  • Ciudad: Norte de África
  • Pais: Escoña
  • Iniciales nick: EPP
[SPEC] - Evitar IF innecesarios al programar
« en: Mayo 17, 2020, 08:32:23 am »
Advertisement
Aunque seas programador actual al intentar hacer cositas en el BASIC del spectrum te das cuenta que cosas que se suponen que no se deben hacer (GOTOs por ejemplo) no te quedan más remedio que hacerlas por las limitaciones del propio lenguaje.
Te das cuenta que varios Bytes pueden ser la vida y te das cuenta de la lentitud del sistema por lo que cualquier truquillo para ahorrar memoria o ciclos del procesador es crucial...

Aquí traigo algunos ejemplos tontos para analizar y que no siempre serán de utilidad ya que en unos casos serán beneficiosos y en otros no pero en todo caso servirán para abrir un poco la mente al programar e incluso lo mismo podrían servir en otros lenguajes...

A continuación, una línea típica de si pulsas la tecla p la coordenada X aumenta en 1
Código: [Seleccionar]
If inkey$="p" then let x=x+1
sin IF sería lo siguiente:

Código: [Seleccionar]
let x=x+(inkey$="p")
En teoría la segunda opción es más rápida pero tiene la contrapartida de que con
LET siempre hará un cálculo se pulse o no y con IF solo lo hace si se pulsa así que
cuando no se pulsa es más rápido IF.

Se podría hacer un GOTO como goto 100+(inkey$="p") el cual saltaría a la 100
en caso de no pulsar la p y a la 101 en caso de pulsar la p

Ahora vamos a imaginar un número que tiene que ir de 1 a 4 y luego resetear a 1

Código: [Seleccionar]
Let a=a+1:if a=5 then let a=1

sería esto, no?

Código: [Seleccionar]
let a=a+1 or a=5

sería lo mismo pero sin IF

Ahora a pensar, jajajaja!

Espero sirva de ayuda.



 


* Salón Recreativo #59 (01-03-2025 / 30-03-2025)  Autor: periko Foro: Salón Recreativo FaseBonus 21/03/2025 (14:36)
* [ZX Spectrum] Donkey Kong  Autor: Zael Foro: Recomendaciones de juegos 21/03/2025 (09:59)
* [Amiga] Donkey Kong  Autor: Zael Foro: Recomendaciones de juegos 21/03/2025 (09:49)
* Reto 324 - Vasara  Autor: empardopo Foro: Competiciones y concursos 20/03/2025 (19:40)
* Reto 325 - Car Action (set 2)  Autor: empardopo Foro: Competiciones y concursos 20/03/2025 (19:01)
* Van dos y se cae el del medio - Hilo de cachondeo general  Autor: empardopo Foro: Offtopic 20/03/2025 (18:52)
* Ofertas Amazon  Autor: empardopo Foro: Offtopic 20/03/2025 (18:41)
* Ayuda con Spectrum +2  Autor: empardopo Foro: Seccion Hardware 20/03/2025 (18:28)
* ¿A qué estáis jugando ahora mismo?  Autor: jmpuk Foro: Offtopic 18/03/2025 (05:32)
* Están muy callados los culerdos, no?  Autor: empardopo Foro: Offtopic 17/03/2025 (21:22)
* [Amiga] Rick Dangerous Pack  Autor: empardopo Foro: Recomendaciones de juegos 17/03/2025 (21:19)
* Amiga Games + F24.01022025  Autor: empardopo Foro: Emuladores 17/03/2025 (18:21)
* [N3DS] Red Viper - Emulando Virtual Boy como Dios manda  Autor: jmpuk Foro: Noticias de emuladores 16/03/2025 (18:15)
* [Recomendación] Cine para los findes en casa (bueno, bonito y barato)  Autor: joselopez Foro: Offtopic 16/03/2025 (07:06)
* [Amiga] Night Shift  Autor: empardopo Foro: Recomendaciones de juegos 14/03/2025 (18:57)
* Duda entre dos tarjetas gráficas para usar con IA  Autor: treme Foro: Offtopic 14/03/2025 (01:59)
* ¿Cómo poner scanlines en mameUI64 versión 0.130?  Autor: Zael Foro: Seccion Video 09/03/2025 (13:14)
* Salón Recreativo FaseBonus - Preparativos y Sugerencias  Autor: Zael Foro: Salón Recreativo FaseBonus 09/03/2025 (12:57)
* [Amiga] Operation Wolf  Autor: empardopo Foro: Recomendaciones de juegos 08/03/2025 (13:37)
* La revolución que suponen las IA generativas de imágenes a partir de texto  Autor: empardopo Foro: Offtopic 06/03/2025 (19:17)
* [Amiga] Glubble  Autor: empardopo Foro: Recomendaciones de juegos 06/03/2025 (18:55)
* [Amiga] King's Valley  Autor: Zael Foro: Recomendaciones de juegos 02/03/2025 (19:07)
* [Amiga] Chuck Rock II:Son of Chuck  Autor: empardopo Foro: Recomendaciones de juegos 23/02/2025 (19:22)

Reto 324 - Vasara