Alguien llamado Meatfighter se entretuvo en desarrollar una versión en TypeScript del legendario Pitfall! de la consola Atari 2600 publicado en 1982. Es un juego de acción que resultó rompedor en su día –a pesar de las limitaciones de aquella vieja máquina– y se sigue considerando uno de los mejores del tipo plataformas / scroll horizontal. Ahora se puede jugar directamente en el navegador.
En el juego, un aventurero debe recorrer la jungla esquivando peligros como escorpiones, troncos y charcas infestadas de cocodrilos. La acción transcurre entre árboles o en cuevas, que curiosamente tienen escaleras (a pesar de estar en medio de la jungla). Hay que recoger 32 tesoros y sortear todos los obstáculos. Es el modo «Difícil» (que sería el «Normal» del juego original) hay 20 minutos como tiempo límite; el juego permite cambiar los niveles y el tiempo.
Quizá lo más interesante es que está desarrollado sin emulación, sólo observando el comportamiento de los personajes y la acción y viendo qué hacía el código fuente original. El código fuente de este nuevo Pitfall está disponible en Github para quien quiera entretenerse en aprender algo más
Las diferencias de este Pitfall y el original son por un lado sutiles, como la transición de escenas y las animaciones más suaves y por otro de más enjundia, como el control del personaje cuando salta o el comportamiento «inteligente» de los enemigos. Así que, en cierto modo, es revivir un clásico pero también jugar a un juego nuevo, así que… Suerte al emular a Indiana Jones.
Estuve la semana pasada enseñando a un par de grupos algo sobre las técnicas básicas de ChatGPT para que entendieran si les vendría bien para sus trabajos y, sobre todo, para sobrevivir si tenían que empezar a usarlo, no cayendo en las trampas habituales.
Estas trampas incluyen desde los errores más comunes, como preguntas ambiguas para temas que no tienen una respuesta clara a poner falsas esperanzas en que la IA van a resolver un problema de forma precisa y óptima o a lidiar con los formatos en los que chatea (imágenes, PDFs, etc) que no siempre es fácil, especialmente cuando se trata de PDFs de decenas de páginas o de textos gigantescos.
Algo sobre lo que reflexioné es que en cierto modo hay que tratar a la IA como tratamos a nuestra metamemoria, esa «facultad de tener conocimiento de nuestra propia capacidad memorística». En lenguaje llano es simplemente saber lo que se sabe y lo que no se sabe. Aquí hay que saber un poco sobre cómo funcionan los LLM de los diferentes modelos de IA –de dónde sacan los datos, cómo se entrenan, etcétera– para adelantarse e imaginar si pueden proporcionar o no una respuesta válida.
El primero explica sobre todo la diferencia entre los errores humanos, que son normalmente del mismo tipo y en las mismas áreas, y los de las IA, mucho más aleatorios e incluso se podría decir que espectaculares (alucinaciones, empecinamientos, etc.) Cuando una IA comete esos errores piensas «madre mía, no ha entendido nada, no tiene ni idea… ¡no sabe ni de lo que habla!»
Esto es propio de los LLM y se puede solucionar acotando mejor las preguntas ampliando la forma de describir el problema, añadiendo más información relevante y pidiendo que verifique las respuestas cuando haya terminado. De hecho modelos como GPT o1 o Deepseek R1/R3 están especializados en «razonamiento más profundo» para evitar estos problemas en lo posible.
El segundo artículo resume unos pocos consejos cómo lidiar con los LLM:
Son buenos transformando texto en menos texto, haciendo resúmenes o sumarios, pero no generando «más texto». Tienden a añadir «paja» a falta de una expresión mejor. Son como un «Autocompletar» avanzado.
No hay que fiarse demasiado de los datos con que están entrenados, hay que darles la información necesaria si es posible.
Mejor hacer que los LLM se autocorrijan y verifiquen los datos varias veces para mejorar los resultados.
La programación tradicional es más fiable que la de los LLM, como observarás si trabajas con código.
Los LLM pueden ayudar, pero no reemplazar a todo el trabajo que hace una persona.
No hay que utilizar los LLM como médicos o abogados. De hecho son dos las áreas de conocimiento especialmente «vigiladas» por los filtros de los LLM para «no mojarse» y responder con todas las opciones, sin indicar cuál es la mejor, además de añadir que es conveniente consultar a un médico o un abogado. Otro área en que no suelen mojarse es en los consejos financieros.
Además de todo esto está el factor de ingeniería social –a falta de una expresión mejor– que se está observando en las IA mientras hablan con sus interlocutores. Utilizando un tono confiado, autoritario y podría decirse que incluso dominante y avasallador, hacen creer a quienes hablan con ellas que lo que están diciendo es cierto, correcto y preciso, cuando en realidad sólo lo es en un porcentaje de las ocasiones. ¡No te dejes dominar por una IA marimandona! Esto es válido especialmente para trabajos importantes; para pasar un rato o averiguar tontás cualquier charla es buena.
Joseph Weizenbaum creó entre 1964 y 1966 a ELIZA, considerada una de las primeras inteligencias artificiales. Su objetivo era comportarse como un modelo de lenguaje con el que interactuar; estaba programada para responder a preguntas «como si fuera una psicoterapeuta humanista». Hace tiempo revivieron a ELIZAa partir de los viejos listados con el código fuente que había en el MIT, en los archivos de Weizenbaum.
Con la limitada tecnología de la época el fondo lo que hace es utilizar un script llamado DOCTOR para interpretar y repetir las preguntas de otro modo y de vez en cuando sacar algún tema nuevo para no aburrir demasiado. Encontrar patrones, repetirlos, asegurarse de que hubiera concordancia… El «truco» estaba claro, pero las personas fácilmente impresionables, como al parecer la secretaria de Weizenbaum, acabaron atribuyéndole «sentimientos humanos». Era básicamente lo que hace ChatGPT en la actualidad, aunque a ambas IA las separe un abismo, pero provocan un poco la misma sensación en muchos.
La programación original de ELIZA estaba en un lenguaje que inventado por el mismo ingeniero: MAD-SLIP. Posteriormente se crearon versiones en Lisp, Basic y otros. En diciembre del año pasado unos arqueólogos informáticos consiguieron hacer funcionar un CTSS del MIT en un emulador de IBM 7094, introducir todo el código disponible a partir de viejos listados y producir prácticamente las mismas respuestas que había en en los documentos de Weizenbaum, reviviendo así a ELIZA.
En la página donde se explica cómo funcionan ELIZA/DOCTOR se indican un montón de opciones que no estaban en el original (precedidas de un * asterisco) como cambiar de color, limpiar la pantalla, usarlo a pantalla completa, cambiar el tipo de letra… Todo para que la recreación sea lo más satisfactoria posible. Y es que no todos los días tenemos la oportunidad de hablar con software de un remoto pasado.
SudokuVariants es una interesante colección de juegos de números parecidos al Sudoku pero con reglas distintas. No es algo nuevo, porque variantes hay cientos pero seguro que descubres alguna nueva. Por decir algo, está el Killer Sudoku que es uno de mis favoritos y el Mayor qué que he visto en muchos sitios. Las 18 variantes que ofrece son:
Arrow
Thermo
Palindrome
German Whispers
Renban
Zipper
Kropki
XV
Greater Than
Consecutive
Non Consecutive
Diagonal
Anti Knight
Anti King
Even Odd
Killer
Sandwich
Windoku
Hay unas instrucciones genéricas sobre los iconos que se aplican a todos los juegos (editar, deshacer, añadir números, limitaciones, etcétera) y también sobre cada juego en particular.
Algo interesante es que se puede simplemente jugar a cualquiera de las variantes o también crear nuevos juegos, añadiendo limitaciones y eligiendo números, lo cual no es tan fácil pero se puede ver como otro juego en sí.
Se puede crear una cuenta para jugar y la página mantendrá el porcentaje de sudokus resueltos, así que también puedes planteártelo como un megareto a ver si eres capaz de resolver las 18 variantes propuestas. ¡Paciencia y buena suerte!