Avaliando LLMs em Aventuras de Texto: Uma Nova Abordagem

2025-08-12

Este artigo propõe um novo método para avaliar as capacidades de modelos de linguagem grandes (LLMs) em jogos de aventura de texto. A abordagem envolve definir um limite de turnos e um conjunto de conquistas no jogo para medir o quão bem um LLM consegue progredir dentro dessas restrições. Devido ao alto grau de liberdade e ramificação em aventuras de texto, este método não foi projetado para fornecer uma pontuação de desempenho absoluta, mas sim para oferecer uma comparação relativa entre diferentes LLMs. O LLM recebe uma série de metas de conquistas e um número limitado de turnos para alcançá-las; a pontuação final é baseada no número de conquistas concluídas. Mesmo LLMs poderosos lutam para explorar todos os ramos dentro do limite de turnos, tornando a pontuação um reflexo da capacidade relativa em vez da habilidade absoluta de jogo.

Leia mais

Desenvolvimento de Aventura de Texto: Equilibrando Escopo e Detalhes

2025-07-07

Desenvolver jogos de aventura de texto requer um gerenciamento cuidadoso do escopo. O autor relata três tentativas, começando com objetivos ambiciosos demais e reduzindo progressivamente a escala até finalmente completar um jogo. O artigo explora as dimensões de 'amplitude' e 'detalhes' no design de jogos de aventura de texto e as compensações entre elas. O autor compara o Lockout, focado em detalhes, com The Plot of the Phantom, focado na amplitude, analisando as vantagens e desvantagens de cada estilo. Jogadores modernos tendem a preferir experiências detalhadas. O autor conclui discutindo o custo e o tempo de desenvolvimento de jogos de aventura de texto e como o gerenciamento do escopo é crucial para criar um jogo divertido.

Leia mais

FizzBuzz com Monads: Uma Abordagem Funcional

2025-05-26

Este artigo apresenta uma abordagem de programação funcional para o problema FizzBuzz usando Monads. A ideia central utiliza o padrão guard-sequence para verificar a divisibilidade por 3, 5 e 7, gerando 'fizz', 'buzz' e 'zork', respectivamente, ou Nothing se não for divisível. `mconcat` combina os resultados, e `fromMaybe` lida com valores Nothing, produzindo a saída correta do FizzBuzz. Esta solução elegante mostra o poder da programação funcional.

Leia mais
Desenvolvimento

Advent of Code: Solução Elegante para um Problema de Análise de Estado

2025-04-09

O último quebra-cabeça do Advent of Code envolve interpretar instruções `do()` e `don't()` que habilitam ou desabilitam a contribuição das instruções `mul` para uma soma. Expressões regulares têm dificuldades com esse estado, pois reconhecem linguagens regulares sem estado. O autor usa uma solução baseada em analisador, elevando-a a um transformador de estado para criar um analisador com estado. Este analisador lida eficientemente com instruções `do()`, `don't()` e `mul`, processando aproximadamente 1 MB de entrada em 0,12 segundos — uma melhoria significativa em relação a uma abordagem baseada em expressões regulares.

Leia mais

Haskell: Surpreendentemente Procedural?

2025-01-19

Este artigo desafia os conceitos errôneos comuns sobre Haskell, argumentando que ele se destaca como uma linguagem procedural. Ele mergulha no tratamento de efeitos colaterais como valores de primeira classe em Haskell, explicando a mecânica subjacente dos blocos `do` e demonstrando o uso de funções como `pure`, `fmap` e `liftA2` para manipulá-los. O autor mostra `sequenceA` e `traverse` para lidar com coleções de efeitos colaterais e ilustra como esses recursos permitem metaprogramação eficiente. Um exemplo complexo demonstra os pontos fortes do Haskell na gestão de estados e caching, contrastando-o com as limitações de outras linguagens. O artigo também explora conceitos avançados como o monad `State` para melhor controle e resultados em streaming.

Leia mais
Desenvolvimento Efeitos Colaterais

O Critério de Kelly: Uma Abordagem Matemática para Decisões de Seguro

2024-12-21

Este artigo explora como o critério de Kelly pode ser usado para tomar decisões racionais sobre seguros. O autor desmascara equívocos comuns sobre seguros, argumentando que é um problema matemático, não filosófico. A ideia central é que o seguro evita grandes reduções de riqueza, acelerando o crescimento de juros compostos. Uma fórmula é apresentada para calcular o valor (V) do seguro, considerando a riqueza atual, o prêmio, a probabilidade de acidentes e o custo. Exemplos de seguros de motocicleta e de helicóptero ilustram os cálculos e o impacto da franquia. O autor explica como as seguradoras lucram e a relatividade dos custos.

Leia mais