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.

Justin
fonte
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.

Timtech
fonte
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

Maçaneta da porta
fonte
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.

Mão-E-Comida
fonte
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/

user1886419
fonte
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
4

Golfe-Básico 84 , 5 4

g`:1

Exiba o gráfico, simule uma pressão de 1, fechando o gráfico e retornando para casa.

Timtech
fonte
Isso faz o mesmo que sua outra resposta?
23713 Justin
@ Quincunx Sim, ele faz.
Timtech
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.

Michael
fonte
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
Trauma Digital
fonte
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.

sergiol
fonte
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.

Glenn Randers-Pehrson
fonte