Sua tarefa é criar o maior programa possível que use exatamente um GOTO, sem o qual todo o programa (ou pelo menos uma grande parte dele) deve ser completamente reestruturado. A pontuação é contada como o número de instruções em seu código que mudam de lugar ou são introduzidas recentemente (remover instruções não adiciona à sua pontuação) quando o código é reestruturado sem o GOTO (outras pessoas podem contestar sua reestruturação, apresentando uma descrição mais elegante). Como esse é o código do boliche, a pontuação mais alta vence.
Nota: Não reivindico qualquer responsabilidade por ataques do velociraptor ao tentar este desafio.
code-bowling
Joe Z.
fonte
fonte
goto
porswitch
parece possível para ambos.Respostas:
C fizzbuzz
Esta solução funciona com a idéia de interrupções e rotular variáveis (somente gcc, desculpe). O programa configura um timer que periodicamente chama main, onde vamos para o que for que a última execução do nosso manipulador de interrupções (main) nos disse que deveríamos.
Eu nunca usei temporizadores ou variáveis de rótulo antes, então acho que há muito o que fazer aqui.
fonte
run
deve ser declaradovolatile
, caso contrário,while(run)
pode ser "otimizado" parawhile(1)
. Ou então, basta ir a algum lugar que ligueexit
.volatile int num
fora do main deve fazê-lo. Comstatic
, o gcc acha que sabe quem pode mexer com ele.Perl
Não sou muito bom no boliche, mas suspeito que isso possa interessar ao OP. Esta é uma peneira de Eratóstenes usando uma variável goto. Se isso fosse "refatorado", duvido que algo seria reutilizável, além das primeiras linhas. Quando a peneira termina, todos os
1
s restantes na@primes
matriz correspondem aos valores primos.Para maior diversão, não são utilizados ands, ors, ternários, condicionais ou operadores de comparação de qualquer tipo.
fonte
C
Meu uso de macros talvez não o torne "um GOTO".
E é bastante curto, então "completamente reestruturado" não é muito.
Mas aqui está a minha tentativa de qualquer maneira.
Lê um número da entrada padrão, imprime-o modulu 3.
fonte
printf
escanf
. A pontuação da sua solução provavelmente seria de 2 ou 3. #n%3
dessa maneira. Deve ser um programa complicado quando o GOTO é removido , não quando é introduzido .goto
, o programa não funcionará. Mas o que você esperava - que o programa fosse complicado apenas com a remoção?