Costuma-se dizer que todos os programadores devem ser capazes de escrever um programa "olá mundo" em qualquer linguagem de programação depois de alguns olhares sobre essa linguagem (e quicksort após mais algumas observações).
Como o Jogo da Vida de Conway é Turing completo (por isso se qualifica como uma linguagem de programação de uso geral) , o problema é auto-explicativo:
Crie um "Olá, mundo!" aplicação usando apenas o jogo da vida de Conway! A única entrada válida é um estado inicial para o Jogo da Vida de Conway, que:
- não contém nenhuma forma reconhecível semelhante ao texto "Olá, mundo!"
- conterá uma forma reconhecível semelhante ao texto "Olá, mundo!" dentro de um número razoável de ciclos (não deve ser executado por mais de alguns minutos em um bom PC - isso permite bilhões de ciclos e deve ser suficiente)
- a área onde o "Olá Mundo!" o texto aparecerá deve estar vazio no estado inicial! (Caso contrário, o problema seria muito fácil) Se ninguém conseguir fazer isso, poderemos reduzir esse requisito para "quase vazio"
Pontuação:
O vencedor será baseado no número de upvotes em aproximadamente uma semana após o primeiro envio válido.
Diretrizes para votação:
- saída mais elaborada e bonita deve valer mais
- o resultado que é estável ao longo de muitos ciclos deve valer mais do que aquele que desaparece para ficar irreconhecível no próximo ciclo.
- uma solução bloqueada em um ciclo perpétuo ou a partir de um padrão interessante vale mais, porque prova o design inteligente do estado, e não apenas tentativa e erro aleatórios com uma simulação reversa.
A entrada deve estar em um formato legível por pelo menos um dos simuladores notáveis ou um simulador on-line ao qual o atendedor está vinculado. Links (para uma animação ou um simulador definido para o estado inicial) também são aceitos, mesmo incentivados. Se a saída não estiver visível dentro de alguns ciclos, a entrada deve especificar após qual ciclo o resultado será visível.
Editar:
Pode haver alguma tolerância leve na frase a ser gerada. Pode ser " Hello, World!
", " hello, world
" " HELLO WORLD!
" etc.
Hello, world!
Respostas:
Minha primeira tentativa para isso, uma solução relativamente simples. Ele dispara alguns barris de planador. Cada par de planadores se transforma em um bloco, que forma o texto. Esse processo leva cerca de 16000 gerações (você pode definir um salto de quadro ou usar o botão SuperStep no meu simulador).
Link direto . Mova-se com o mouse direito, amplie com a roda do mouse.
Link para o arquivo .rle (também funciona com Golly)
Imagem do padrão 32: 1:
fonte