Recentemente (há alguns anos atrás) houve um burburinho nos sites de programação sobre uma implementação do Tetris em 140 bytes . ...
Acontece que, embora seja pequeno, é uma versão simplificada do Tetris, e nem mesmo uma implementação completa. Somente a função lógica central cabe em 140 bytes de Javascript. Para executá-lo, você precisa de outros ~ 840 caracteres de HTML.
Nós podemos fazer melhor!
Esse desafio é implementar uma versão completa do "Binary Tetris" no menor número possível de tweets.
Regras binárias de Tetris:
- O programa deve exibir um campo de jogo contendo pelo menos 5 colunas e 6 linhas de células.
- Qualquer método de exibição pode ser usado, desde que os blocos e as bordas do campo estejam claramente marcados.
- Deve haver pelo menos dois tipos de blocos:
#
e##
. Suporte adicional a blocos, como###
blocos angulares em forma de L, será votado por mim: P e o jogo mais completo de tetris binários (a maioria dos blocos como os recursos originais e de rotação) ganharão minha felicidade e uma possível recompensa de 50 repetições. - Novos blocos são adicionados ao campo na linha superior e uma célula de bloco deve ocupar a coluna central.
- Os blocos descem em direção à linha inferior a uma taxa fixa. Os blocos devem descer mesmo sem a entrada do usuário.
- Quando os blocos tocam a parte inferior do campo ou um bloco inferior, eles param de cair e são fixados no lugar. Um novo bloco é adicionado.
- Quando todas as colunas da linha são preenchidas com blocos, a linha é esvaziada e todos os blocos fixos acima caem uma linha.
- O programa deve responder a pressionamentos de tecla. Deve haver três teclas exclusivas que executam as seguintes funções
- deslocar o bloco atual para a esquerda 1 coluna
- deslocar o bloco de corrente à direita 1 coluna
- deslocar o bloco atual para baixo 1 linha
- Cada tweet pode ter apenas 140 caracteres. É permitido o uso de caracteres de vários bytes que podem ser colocados nos tweets.
As regras para o que pode estar em um tweet é simples. Se você pode twittar, você pode usá-lo.
Os idiomas interpretados seguem as mesmas regras. Cada seção deve seguir as especificações. Desde que não ocorram erros no tempo de execução (e o restante seja válido de acordo com as especificações), sua resposta é válida Regras de golfe:
Como a implementação original era "tweetável", esse desafio requer o mesmo. As entradas devem poder ser transmitidas como uma série de tweets (linhas de 140 caracteres ou menos).O primeiro tweet deve conter o nome do compilador / intérprete, o nome do programa e quaisquer argumentos de linha de comando
- ele será salvo como arquivo "P0"
- Os seguintes N tweets devem conter o programa como uma série de linhas.
- Cada tweet será armazenado em um arquivo com o nome T <n>, onde n é 1..N
- Cada linha será adicionada às linhas anteriores e compilada ou interpretada. Ele deve produzir um arquivo ou programa de objeto válido.
- O programa não precisa estar funcional até que a última linha seja adicionada.
O programa será executado da seguinte maneira (pseudo-bash)
interp,prog,args = split P0 /\s/ touch $prog for file in ./T* do cat $prog file > $prog $interp $prog $args die("FAIL") if $? #detect error done
O intérprete deve ser um programa executável comumente disponível que ainda não implemente o Tetris.
Scoring :
tweets, incluindo P0 menor índice. Gravatas quebradas pelo maior número de caracteres sobressalentes (140 * num tweets - contagem total de caracteres).
Entradas de exemplo
chrome a.htm
<html><div id="output"></div></html>
<script>cool java script here</script>
Pontuação = 3 (334 de reposição)
cc a.c ;a.out
main(){/*cool prog here*/}
Pontuação = 2 (241 de reposição)
tetris
Pontuação = 1 (134 de reposição) se for legal, o que não é
Agradecimentos especiais
Pude postar isso com o consentimento de Ashelly aqui