O programa mais inútil de todos os tempos! [fechadas]


8

Inspirado na máquina mais inútil de todos os tempos .

Escreva o programa mais curto que faça o seguinte:

  • crie uma janela gráfica, feche-a imediatamente e saia do programa.
  • faça isso de uma maneira visualmente aparente. Como o "braço" que pressiona a chave na máquina, o programa deve usar algum método visual na GUI para se fechar.
  • esse método visual deve ser o que faz com que o programa seja fechado; você não pode simplesmente mostrá-lo como algo do lado (embora possa haver outras coisas ao lado)

Nota:

  • O programa não precisa ser visível por tempo suficiente para que a atividade visível seja vista por um ser humano, desde que a atividade seja a causa do fechamento.
  • A janela deve ser uma GUI (deve exibir uma janela gráfica que contém o método de saída visível).
  • O método visual precisa ser algo que o usuário possa fazer se não for feito automaticamente. Explique o que precisa ser alterado no código para que o usuário possa fazer isso (obrigado a Iszi).
  • O programa deve fechar se não houver interferência do usuário, mas se o usuário interferir, não será necessário fechar automaticamente.
  • Por favor, inclua uma explicação do que faz com que o programa seja fechado.

Exemplo: uma janela contendo um botão que é clicado programaticamente, executando um pequeno trecho de código que fecha o programa.


2
Eu sugiro que, para programas não visíveis o suficiente para serem vistos por humanos, as respostas incluam o que deve ser alterado no código (adição / aumento de valores de timer, etc. - mas não altera fundamentalmente sua funcionalidade) para demonstrar a um ser humano que ele realmente faz algo visual.
— Iszi

1
Deve ser um código de golfe ou um concurso de popularidade?
— 30714 Kevin

1
Alterei minha resposta do TI-BASIC para uma versão compilada mais curta que a minha outra resposta (que atualmente é aceita). Eu apreciaria se você pudesse mudar isso :)
— Timtech

1
Estou curioso para saber por que essa pergunta está sendo DVd e VTCd. Por um lado, isso tem um critério de ganho objetivo; é um [código-golfe]. Entendo que essa não é a melhor pergunta, mas por que está sendo VTCd?
— 19717 Justin

Respostas:


8

TI-Basic, 3 bytes

DispGraph:1

hex: 31 3E DF

Explicação

DispGraph Exibe o gráfico (uma janela gráfica)

:1Simula uma imprensa de 1(armazenando 1a Ansna última etapa de um programa), o que leva a parte de trás da calculadora para a tela inicial. Um usuário pode fazer a mesma coisa.


2
O GTB é meio estúpido, considerando que os símbolos de cada comando são armazenados com valores de 2 bytes.
— precisa

Concorrido, eu (da inspeção usando o CalcSys) contaria como 6 (talvez 4, não tenho certeza se todos os sistemas operacionais usam tokens de byte único para :e 1). A sobrecarga e as tabelas do sistema de arquivos obviamente não estão incluídas na contagem.
— Nanofarad

2
O que você quer dizer com compilado? TI-BASIC é interpretado.
— 19417 Jakob

@Jakob Naquela época, eu estava mais confuso sobre como o TI-Basic funcionava. O que eu deveria ter dito é que a fonte são 3 tokens de 1 byte. Deixe-me corrigir esta resposta
— Timtech

@Jakob Lá vamos nós. Acho que naquela época nós estávamos marcando programas TI-básicos pela contagem ascii byte em vez de fichas
— Timtech

10

Rubi com Sapatos , 110

Shoes.app{button('Close'){exit}
p=para
t=Time.now
animate{u=(t-Time.now).to_i+10
exit if u<0
p.text=' '*u+?<}}

Faz uma pequena seta que pressiona o botão "Fechar". (Pressionar o botão Fechar manualmente também fecha a janela.)

captura de tela


9

Lote do Windows, 4 bytes

Salve o seguinte programa em um .batarquivo na sua pasta de usuário (C: \ Users \ nome de usuário):

Exit

Quando executado no prompt Iniciar, Executar , uma nova janela é aberta, digita o comando Exite o executa.


1
"A janela deve ser uma GUI (deve exibir uma janela gráfica que contém o método de saída visível)." - é discutível se sua janela contiver o método de saída visível, eu diria que não.
— gronostaj

4
@gronostaj Ele tem um X no canto superior direito.
— Seiyria

1
Ah, entendo - você está explorando as regras. Existe um método visível para sair e o usuário pode fazer o mesmo que o programa, mas esses são dois métodos diferentes para finalizá-lo. Isso é inteligente, +1.
— gronostaj

Criando um .bat com apenas um caractere de espaço: 1 byte?
— SEarle1986 4/03

@ SEarle1986, o caractere de espaço não causaria a saída do programa. Ele seria fechado porque alcançou o final do arquivo em lotes. Exitfará com que a janela seja fechada antes da conclusão do arquivo em lote.
— Hand-E-Food

4

JavaScript: 133 117

(Você precisa permitir pop-ups no navegador da web para que isso funcione)

Código-golfed:

(function(){w=window.open(),d=999,i=setInterval(function(){w.resizeTo(d-=9,d),d<0&&(clearInterval(i),w.close())})})()

Fonte: http://jsfiddle.net/gt2t8/2/


Por que redimensionar?
— 8263 Justin

@Quincunxdo this in some visually apparent manner. Like the "arm" that pushes the switch in the machine, the program must use some visual method in the GUI to close itself.
— user1886419

1
reduzido para 117 caracteres:(function(){w=window.open(),d=999,i=setInterval(function(){w.resizeTo(d-=9,d);if(d<0)clearInterval(i),w.close()})})()
— Griffin

@Griffin thanks! Atualizado com suas sugestões
— user1886419

1
Um que eu possa executar sem sair da página. Impressionante.
— Seiyria


2

assembly x86 / Win32 (337 310 271 bytes)

.586
.model flat
option casemap:none
include kernel32.inc
include windows.inc
include user32.inc
i textequ <invoke>
.code
s:i CreateThread,0,0,$+46,0,0,0
i MessageBox,0,$,$,0
i ExitProcess,0
i Sleep,999
i FindWindow,0,$
i PostMessage,eax,256,13,0
ret
END s

Monta com MASM32 ( ml /c /coff /Gz /I<include path> test.asm/ link /SUBSYSTEM:WINDOWS /LIBPATH:<library path> test.obj kernel32.lib user32.lib).

Ele cria uma MessageBox com um "OK" botão e um segmento que simula um retorno de carro é pressionado pelo usuário após 999 ms.

O $é substituído pelo endereço do início da codeseção pelo montador / vinculador. A primeira instrução é a push byte 0(implicitamente, uma vez que é gerada pelo invoke), que é codificada como 6A 00, que é igual à string terminada em nulo "j". Aproveito isso ao chamar MessageBoxe FindWindow.


O assembly tem 271 bytes ou é esse o tamanho do código da máquina?
— 12Me21

1

Bash com sistema X Window, 10 caracteres

xterm -e :

Abra uma janela xterm, execute o bash no-op : , após o qual a janela do xterm é fechada.

Se você quiser ver a janela inútil por um segundo, poderá alterar :para sleep 1:

xterm -e sleep 1

1

Tcl / Tk, 131

grid [button .b -command exit]
event generate .b <Button-1> -warp 1 -x 5 -y 5
event generate .b <ButtonRelease-1> -warp 1 -x 5 -y 5

Tcl / Tk, 136

grid [button .b -command exit]
event generate .b <ButtonPress-1> -warp 1 -x 5 -y 5
event generate .b <ButtonRelease-1> -warp 1 -x 5 -y 5

Ele precisa ser executado em um shell interativo, linha por linha, e o usuário não pode mover o mouse entre elas.

  1. Inicia a aplicação

insira a descrição da imagem aqui

  1. O botão cujo comportamento é fechar o aplicativo é adicionado à janela do aplicativo

insira a descrição da imagem aqui

  1. Gere um evento que pressiona o mouse no botão - Embora o cursor não esteja visível na captura de tela, ele está sobre o botão; é visível que o botão foi pressionado porque agora afundou e antes de ser gravado em relevo.

insira a descrição da imagem aqui

  1. Por fim, gere um evento que libera o botão do mouse para cima.

    uma. Imagem antes de realmente enviá-la (antes de pressionar Enter) insira a descrição da imagem aqui

    b. Depois Digite o shell interativo e as janelas do aplicativo simplesmente desapareceram. insira a descrição da imagem aqui

Nota para tcl'ers: Tentei fazer o mesmo diretamente no botão X Fechar da janela usando:

event generate . <ButtonPress-1> -warp 1 -x 175 -y -10
event generate . <ButtonRelease-1> -warp 1 -x 175 -y -10

mas não tive sucesso.


0

Bash - eco (50 bytes)

Não joga golfe, 54 bytes:

s=sleep;echo -n \>\\;$s 1;echo -ne "\b\b >/";$s 1;echo

Golfe, 50 bytes

Não posso exibir exatamente a versão do golfe aqui porque os caracteres de backspace realmente retrocedem. Para a versão golf, altere os caracteres "^ H" para caracteres de backspace simples (^ H):

s=sleep;echo -n \>\\;$s 1;echo -n ^H^H \>/;$s 1;echo

Notas:

  • A atividade é visível por 2 segundos.

  • Ele não usa um gerenciador de janelas ou qualquer coisa desse tipo, mas conto a arte ASCII como um "gui". Se você estiver executando o comando em uma janela de terminal, que agora é o caso usual, a atividade será exibida nessa janela. Não abre uma nova janela.

  • O usuário pode fechar o programa antes do fechamento automático pressionando "CTRL-C" dentro de 2 segundos após o início do programa. Os usuários que se sentirem mais confortáveis ​​usando sua GUI podem colocar o cursor no pequeno "X" no canto da janela do terminal, rapidamente, e "clicar" nela.

  • O programa fecha após 2 segundos se não houver interferência do usuário. O usuário pode fazer com que ele seja fechado mais cedo.

  • O que faz com que o programa seja fechado é a conclusão do "eco" final.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.