Tetris en 446 bytes

Quieres jugar al Tetrison. Quieres jugar Tetris en cualquier sistema operativo. Quieres jugar en una vieja computadora IBM, quieres jugar Tetrison en una nueva MacBook. Quieres Tetrison, que cabe dentro de la unidad de memoria principal. Quieres Tetrison como tu sistema operativo. Quieres TetrOS.

O tal vez no, pero es un trabajo maravilloso y nos encantan las pequeñas demostraciones. Míralo debajo del descanso. O lea el código fuente en la imagen estándar.

No tiene puntuación, ni gráficos sofisticados, ni una pantalla de presentación introductoria. No muestra el siguiente ladrillo. No se acelera mientras sigues jugando. El defecto fatal es que no reproduce el tema Tetris de fondo. Pero es pequeño y se puede reproducir.

Y hablando de Tetris sin sistema operativo, si tiene un Arduino relativamente extenso, puede obtener una versión con todos los lujos.

  • jadams dice:

    La ciencia no se trata de “¿Por qué?”, ​​Sino de “¿Por qué no?”.

    • Ingenuo de patas azules dice:

      Worrrrd. Los mejores proyectos inspiran admiración, confusión y terror al mismo tiempo. Puse esto en la misma categoría que Enterprise Fizzbuzz *, y ese motor Doom reducido para TI-83 + **.

      * https://github.com/EnterpriseQualityCoding/FizzBuzzEnterpriseEdition
      ** http://www.benryves.com/journal/3725786

    • Sargento Sandbox dice:

      Pensé que la ciencia se trataba de por qué y la ingeniería se trataba de por qué no.

      • Ingenuo de patas azules dice:

        Creo que quiere decir “¿por qué no intentamos esto / estudiamos esto / pensamos en esto?” en lugar de tener que justificar cada investigación en términos de ventajas concretas.

        • kriptilomese dice:

          Se refiere a Cave Johnson de Portal 2, ¡que recomiendo!

          • DainBramage dice:

            Necesitamos limones quemables.

    • nah! dice:

      Pensé que la ciencia se trataba de cómo

  • RW dice:

    No está mal, no está mal, ahora conviértalo a un código QR que se puede ejecutar en múltiples plataformas …

    • RW dice:

      PD: Ahora siento un fracaso debido a que no pude implementar esto en los 480 bytes de mi FX6500G, solo manejé acorazados y blackjack.

      • DainBramage dice:

        Ummm … Definitivamente NO eres un fracaso con tales logros.

    • TheRegnirps dice:

      Una buena lectura, si le gusta el código 6502, es el sistema deslizante de 256 bytes de Steve Wozniak para Apple II. Veamos, ¿Tetrison resbaladizo en 700 bytes? Simplemente porque.

      • JIm B dice:

        Woz fue coautor de esas rutinas. Todo el paquete FP tenía menos de 512 bytes e incluía un registro, registro de contador, flotar para arreglar, reparar para flotar también. Las rutinas principales add / sub / mult / div fueron aproximadamente la mitad de eso.

        http://archive.org/stream/Apple_2_Woz_Floating_Point_Routines_for_the_6502/Apple_2_Woz_Floating_Point_Routines_for_the_6502_djvu.txt

        • TheRegnirps dice:

          Dice que él mismo escribió las rutinas básicas. Recuerdo que se esforzó hasta el final para ingresar 256 bytes. Al igual que su software FDD, estaba obsesionado con guardar un byte. Si comenzaste con tablas donde 1K era un lujo, lo entiendes.

  • xMob dice:

    Solo pongo esto aquí:
    https://survex.com/~olly/rheolism/dsm_rheolism/

    😉

    • Alphatek dice:

      ¡Te dije que BBC Basic era lo mejor!

      • Elliot Williams dice:

        ¡Bah! Aquí está Python:

        import tetris
        if __name__ == "__main__":
            tetris()
        

        ¿Qué es más legible?

      • Jim dice:

        Algo parece faltar aquí: esa única línea es demasiado larga para insertarse en el modelo B; 429 caracteres, no 256 como se sugiere.

        • RW dice:

          Las palabras clave BAJ son símbolos únicos ???

          • Jim dice:

            Sí, todo quedó claro cuando seguí el enlace a Extra Rheolism: “La única línea es un byte menor que la longitud máxima cuando está firmada y, por lo tanto, es muy difícil de escribir. Por lo tanto, se distribuye en forma de archivo que debe * Ejecutarse. ‘- En otras palabras, no puede simplemente escribirlo, el editor BASIC normal no puede manejarlo.

    • RW dice:

      demonio

  • Jon Mayo dice:

    Por lo general, comienzo a desarrollar estos pequeños juguetes seguros para el arranque haciendo un archivo .COM en DOSBox. Normalmente uso FASM dentro de DOSBox, pero lo que sea que haga flotar su bote. Una vez que tenga un archivo .COM en funcionamiento, ajuste la fuente y ejecútelo como un sector de arranque, hay una pequeña modificación.

  • Antron Argaiv dice:

    Ahora agregue música rusa cursi de 8 bits … porque no es Tetris sin esas melodías.

    • Hirudinea dice:

      ¡Ahí le has dado!

      https://eo.wikipedia.org/wiki/Korobeiniki

  • Estado de ánimo del infierno dice:

    Importante: parece casi idéntico, con una puntuación de 256 bytes, de 2007: http://www.pouet.net/prod.php?which=29286

  • Brian Monaghan dice:

    No vi patadas de pared en la demostración, ¿qué tipo de sistema de rotación usa? .

  • Dave Goehrig dice:

    Esto ha restaurado mi fe en la humanidad y en nuestro futuro colectivo.

  • Shakipu dice:

    Odio este juego, pero admiro este trabajo.

  • ROBÓ dice:

    Cita: “quiere jugar Tetris en cualquier sistema operativo”

    A menos que lea incorrectamente, QEMU copiará hardware diferente, pero el código debe coincidir con el sistema de destino. Entonces, teóricamente, este código solo funciona en el hardware para el que fue diseñado o en el emulador en el modo de emulación para ese hardware.

    • Pusalieth dice:

      Te lo perdiste, hombre. El código es un sistema que ejecuta el sistema operativo. El sistema operativo es Tetris.

      • ROBÓ dice:

        Sí, pero el código es x86 y solo funciona con una CPU o emulador x86. Hay muchas otras plataformas de hardware y sistemas operativos que no utilizan x86.

  • Jacques dice:

    no veo el código fuente en el banner, es el código ejecutable

    • NewCommentor1283 dice:

      teicallynike your right, pero si conoces los códigos de operación para el procesador (o microcontrolador), entonces es casi tan bueno como el código de código … realmente no se descompone cuando el código fue escrito para los propios registros de la CPU; Siempre que tenga acceso a la hoja de datos de ese fragmento específico, es solo una traducción.

      esa es la belleza simple de un ensamblador, no necesita entender cómo se PUEDEN hacer las cosas, solo necesita leer una serie de comandos y ordenarlos en un archivo de texto 🙂
      p.ej:
      0xFF = NOP (un byte)
      0x30 = LD (el siguiente byte contiene datos de 7 bits y 1 bit, lo que determina si sigue un tercer byte)
      0x00 = FIN (un byte)

      • NewCommentor1283 dice:

        si fuera el tetris binario del compilador C o BASIC ect, entonces cada versión y configuración diferente hará grandes cambios en lo que realmente aparece, incluso si los programas hacen lo mismo, el binario será diferente, a menudo consumiendo solo el 90-99% del código y el resto son errores. pero cuando algo complejo es codificado por un ensamblador y optimizado MANUALMENTE A MANO y hasta sus solo unos pocos cientos de bytes, incluidos gráficos (comandos), y luego descompilado, generalmente ejecutará el código fuente recompilable sin corregir ningún comando. Por lo general, los únicos ensamblados que no se compilan fácilmente en el primer intento son cosas que no terminan en código, como las directivas de finalización especiales. p.ej. ORG, AVR “fuse-bits”, #library

    • Elliot Williams dice:

      re: sin fuente. El código de máquina es solo ASM en rot13.

      • ROBÓ dice:

        El código de la máquina es HEX
        La reunión es un mnemónico
        El código fuente puede ser cualquier cosa que se compile en lo anterior.

        • Michael Simonds dice:

          Duuma

          • ROBÓ dice:

            https://cdn.la-tecnologia.io/images/9611331403149698706.jpg

  • miros2424 dice:

    ¿Esta demostración está incluida en el código?

  • onebiozz dice:

    Lo encendí con VMware … consumirá tiempo innecesario …

  • RW dice:

    Pero, ¿dónde está el código de IA que te da 10 Ts seguidos cuando esperas a que yo?

  • David Maunder dice:

    … Ya he sacado seis bytes de la rutina del teclado de un vistazo muy rápido a través de la lista de asm. Ejecútelo con la vieja mafia informática Hugi en grupos yaho y alguien tomará estos 446 bytes y los dividirá a la mitad muy fácilmente. Se han creado varios Tetris para varias composiciones de 256 bytes a lo largo de los años, como se mencionó anteriormente.

    • ROBÓ dice:

      ¡El guante fue arrojado al suelo!

    • RW dice:

      Lo consideraré cierto cuando funcione … algunos de estos pequeños programas están comenzando a hacer cosas como tomar una instrucción como entrada variable en otro lugar, solo porque es el número correcto o uno que funcionará.

      • KDM dice:

        Código auto modificable. 😉

  • Dave Davidson dice:

    Dios mío, quiero jugar Tetris en el MBR de un disco IDE torpe con una pantalla de Nokia 5110 Controlarlo con ollas de radio de coche

    • RW dice:

      Retire la unidad, bloquee el movimiento de la cabeza, muestre una pantalla de punto de vista desde un soporte para platos, opere todo con el microcontrolador de la unidad.

  • CRJEEA dice:

    Este es casi el nivel promedio en el que las personas pueden recordar la secuencia:

  • w dice:

    Stack Exchange tiene una sección completa de “código de golf” en la que el ganador es quien escribe un algoritmo determinado. en la cantidad oriental de código. Es bastante fascinante.

Maya Lorenzo
Maya Lorenzo

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *