Sua tarefa é escrever um programa que desenhe uma imagem em preto e branco de 800x600 com algo semelhante a uma floresta.
Assim (é uma foto pontilhada):
Regras
- Você não pode usar nenhuma imagem existente - você deve gerar uma imagem puramente algorítmica
- Use apenas 2 cores - preto e branco (sem escala de cinza)
- Cada vez que o programa é executado, a imagem deve ser nova - aleatória todas as vezes
- Uma árvore não é uma floresta (digamos 5 árvores, no mínimo)
- Bibliotecas especiais para desenhar árvores / florestas não são permitidas
- Responda com mais votos
Respostas:
C:
386311441023999942927A solução original salva 2 arquivos pnm por execução (um com g anexado, antes do pontilhamento). Como o pontilhamento não era bonito para as primeiras linhas, existe um hack para processar mais linhas do que o necessário e cortar durante a saída.
A solução para golfe possui um pontilhamento mais simples e salva apenas a imagem pontilhada. (sem avisos com gcc -std = c11 -pedantic -Wall -Wextra)
Imagens de exemplo de três execuções originais do programa e uma execução da versão em golfe (última imagem):
Versão Golfed
Versão original
fonte
Java Jungle
(954 jogou golfe)
Cheia de vegetação rasteira e profunda, esta é uma floresta que não é facilmente atravessada.
É basicamente uma caminhada aleatória fractal com videiras sinuosas e encolhendo lentamente. Eu desenho 75 deles, mudando gradualmente de branco nas costas para preto na frente. Então eu estrago tudo, adaptando descaradamente o código de Averroes aqui para isso.
Golfed: (Só porque outros decidiram)
Sane código original:
Mais um? OK! Este tem o pontilhamento um pouco mais baixo, então os negros na frente são muito mais lisos.
Infelizmente, o pontilhamento não mostra os detalhes das camadas da videira. Aqui está uma versão em escala de cinza, apenas para comparação:
fonte
Javascript + HTML - não jogado
Uma portabilidade javascript do algoritmo de @Manuel Kansten - é incrível como essas árvores são boas.
Apenas para fazer algo diferente, eu desenho a imagem em cores e depois inclino para preto e branco no último passo.
Não sei por que, mas minha floresta é menos escura e menos assustadora em relação à de Manuel.
Teste com o JSfiddle ou execute o novo snippet abaixo. Isso não é rápido. Seja paciente e observe a floresta crescer.
fonte
Arte isenta de contexto 3 (1133)
CF é uma linguagem de renderização de gráficos vetoriais, portanto não posso evitar o anti-alising. Eu trabalhei isso desenhando quadrados no mesmo local várias
N
vezes (variáveis ). A neblina é feita desenhando pequenos quadrados em locais aleatórios.Mais renderizações usando números diferentes
fonte
C: 301
Este programa cria uma imagem simples e abstrata no formato PGM . Você pode abri-lo com o GIMP.
Aqui está um exemplo de execução:
fonte
IFS com JAVA
Esta solução usa um sistema de funções iteradas (IFS) para descrever uma (proto) árvore. O IFS é aplicado 100 vezes (= floresta). Antes de cada árvore ser pintada (plantada na floresta), o IFS é ligeiramente alterado no lugar (estilo de passeio aleatório). Portanto, cada árvore parece um pouco diferente.
As imagens são de sementes aleatórias:
Não é necessário pontilhamento.
fonte
Notei uma nítida falta de coníferas aqui, então cortei algo em Python.
Este foi o meu primeiro Code Golf, foi muito divertido!
fonte
Essa resposta não é tão bonita quanto eu esperava, mas é um trampolim para uma idéia mais 3D em que estou trabalhando, e eu realmente gosto da ideia de simular quais árvores recebem recursos
fonte