Program Yang Paling Tidak Berguna PERNAH! [Tutup]

8

Terinspirasi oleh The Most Useless Machine Ever .

Tulis program terpendek yang melakukan hal berikut:

  • buat jendela grafis, lalu segera tutup jendela dan keluar dari program.
  • lakukan ini dalam beberapa cara yang tampak secara visual. Seperti "lengan" yang menekan sakelar di mesin, program harus menggunakan beberapa metode visual dalam GUI untuk menutup sendiri.
  • metode visual ini harus menjadi penyebab penutupan program; Anda tidak bisa hanya menunjukkannya sebagai sesuatu di samping (meskipun mungkin ada hal-hal lain di samping)

catatan:

  • Program tidak harus terlihat cukup lama agar aktivitas yang terlihat dapat dilihat oleh manusia selama aktivitas tersebut merupakan penyebab penutupan.
  • Jendela harus berupa GUI (harus menampilkan jendela grafis yang berisi metode keluar yang terlihat).
  • Metode visual perlu menjadi sesuatu yang dapat dilakukan pengguna jika tidak dilakukan secara otomatis. Jelaskan apa yang perlu diubah dalam kode agar pengguna dapat melakukan ini (Terima kasih kepada Iszi).
  • Program harus menutup jika tidak ada gangguan dari pengguna, tetapi jika pengguna mengganggu, maka tidak perlu menutup secara otomatis.
  • Harap sertakan penjelasan tentang apa yang menyebabkan program tutup.

Contoh: jendela yang berisi tombol yang secara program diklik, menjalankan potongan kode pendek yang menutup program.

Justin
sumber
2
Saya menyarankan bahwa, untuk program yang tidak cukup terlihat untuk dilihat oleh manusia, jawaban harus mencakup penyebutan apa yang harus diubah dalam kode (menambah / menambah nilai pengatur waktu, dll. - tetapi tidak secara mendasar mengubah fungsinya) untuk menunjukkan kepada manusia bahwa itu benar-benar melakukan sesuatu yang visual.
Iszi
1
Haruskah ini golf kode atau kontes popularitas?
Kevin
1
Saya telah mengubah jawaban TI-BASIC saya ke versi kompilasi yang lebih pendek dari jawaban saya yang lain (yang saat ini diterima). Saya akan menghargai jika Anda bisa mengubahnya :)
Timtech
1
Saya ingin tahu mengapa pertanyaan ini menjadi DVd dan VTCd. Untuk satu, ini memiliki kriteria kemenangan objektif; itu adalah [kode-golf]. Saya bisa mengerti bahwa ini bukan pertanyaan terbaik, tapi mengapa itu VTCd?
Justin

Jawaban:

8

TI-Basic, 3 byte

DispGraph:1

hex: 31 3E DF

Penjelasan

DispGraph Menampilkan grafik (jendela grafis)

:1Mensimulasikan pers 1(dengan menyimpan 1ke Anspada langkah terakhir dari program), yang mengambil kalkulator kembali ke layar awal. Seorang pengguna dapat melakukan hal yang sama.

Timtech
sumber
2
GTB agak bodoh mengingat simbol untuk setiap perintah disimpan nilai 2-byte.
TheDoctor
Setuju, I (dari inspeksi menggunakan CalcSys) akan dihitung sebagai 6 (mungkin 4, tidak yakin apakah semua OS menggunakan token byte tunggal untuk :dan 1). Overhead dan tabel Filesystem jelas tidak termasuk dalam hitungan.
nanofarad
2
Apa yang Anda maksud dengan kompilasi? TI-BASIC ditafsirkan.
Jakob
@ Jakob Saat itu saya lebih bingung tentang cara kerja TI-Basic. Yang seharusnya saya katakan adalah sumbernya adalah 3 token 1-byte. Biarkan saya memperbaiki jawaban ini
Timtech
@ Jakob Ini dia. Saya pikir saat itu kami mencetak program TI-Basic dengan jumlah byte ascii daripada token
Timtech
10

Ruby with Shoes , 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+?<}}

Buat panah kecil yang menekan tombol "Tutup". (Menekan tombol tutup secara manual juga menutup jendela.)

tangkapan layar

Gagang pintu
sumber
9

Windows Batch, 4 byte

Simpan program berikut ke .batfile di folder pengguna Anda (C: \ Users \ username):

Exit

Ketika dieksekusi dari Start, Run prompt, jendela baru terbuka, ketik perintah Exitdan jalankan.

Makanan Tangan
sumber
1
"Jendela tersebut harus berupa GUI (harus menampilkan jendela grafis yang berisi metode keluar yang terlihat)." - diperdebatkan jika jendela Anda berisi metode keluar yang terlihat, saya akan mengatakan itu tidak.
gronostaj
4
@gronostaj Memiliki tanda X di sudut kanan atas.
Seiyria
1
Ah, saya mengerti - Anda mengeksploitasi aturan. Ada metode yang terlihat untuk keluar dan pengguna dapat melakukan hal yang sama dilakukan oleh program, tetapi itu adalah dua metode yang berbeda untuk menghentikannya. Itu pintar, +1.
gronostaj
Membuat .bat hanya dengan karakter spasi: 1 byte?
SEarle1986
@ SEarle1986, karakter spasi tidak akan menyebabkan program keluar. Itu akan keluar karena mencapai akhir file batch. Exitakan menyebabkan jendela menutup sebelum file batch selesai.
Hand-E-Food
4

JavaScript: 133 117

(Anda harus mengizinkan munculan di peramban web Anda agar ini berfungsi)

Kode-golf:

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

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

pengguna1886419
sumber
Mengapa ukurannya?
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
dikurangi menjadi 117 karakter:(function(){w=window.open(),d=999,i=setInterval(function(){w.resizeTo(d-=9,d);if(d<0)clearInterval(i),w.close()})})()
Griffin
@ Griffin, terima kasih! Diperbarui dengan saran Anda
user1886419
1
Satu yang bisa saya jalankan tanpa meninggalkan halaman. Luar biasa.
Seiyria
4

Golf-Basic 84 , 5 4

g`:1

Tampilkan grafik, simulasikan tekan 1, tutup grafik dan kembali ke rumah.

Timtech
sumber
Apakah ini melakukan hal yang sama dengan jawaban Anda yang lain?
Justin
@ Quincunx Ya, benar.
Timtech
2

perakitan x86 / Win32 (337 310 271 byte)

.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

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

Ini menciptakan MessageBox dengan tombol "OK" , dan utas yang mensimulasikan carriage return pers dari pengguna setelah 999 ms.

Ini $diganti dengan alamat bagian awal codeoleh assembler / linker. Instruksi pertama adalah push byte 0(secara implisit, karena itu dihasilkan oleh invoke), yang dikodekan sebagai 6A 00, yang sama dengan string yang diakhiri dengan null "j". Saya memanfaatkan ini saat menelepon MessageBoxdan FindWindow.

Michael
sumber
Apakah rakitan 271 byte, atau apakah itu ukuran kode mesin?
12Me21
1

Bash dengan Sistem X Window, 10 karakter

xterm -e :

Buka jendela xterm, jalankan bash no-op :, setelah itu jendela xterm ditutup.

Jika Anda ingin melihat jendela yang tidak berguna untuk sesaat, Anda dapat mengubah :ke sleep 1:

xterm -e sleep 1
Trauma Digital
sumber
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

Itu perlu dijalankan pada shell interaktif, baris demi baris dan pengguna tidak dapat menggerakkan mouse antara.

  1. Aplikasi dimulai

masukkan deskripsi gambar di sini

  1. Tombol yang perilakunya menutup aplikasi ditambahkan ke jendela aplikasi

masukkan deskripsi gambar di sini

  1. Hasilkan peristiwa yang menekan mouse pada tombol - Meskipun kursor tidak terlihat di tangkapan layar, itu di atas tombol; terlihat tombol telah ditekan karena sekarang tenggelam, dan sebelum itu timbul.

masukkan deskripsi gambar di sini

  1. Akhirnya hasilkan suatu acara yang melepaskan tombol mouse ke atas.

    Sebuah. Gambar sebelum benar-benar mengirimnya (sebelum menekan Enter) masukkan deskripsi gambar di sini

    b. Setelah Masukkan shell interaktif dan jendela aplikasi hilang begitu saja. masukkan deskripsi gambar di sini

Catatan untuk tcl'ers: Mencoba melakukan hal yang sama langsung pada tombol X Tutup jendela menggunakan:

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

tetapi saya tidak berhasil.

sergiol
sumber
0

Bash - echo (50 byte)

Tidak golf, 54 byte:

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

Golf, 50 byte

Saya tidak bisa menampilkan versi golf di sini karena karakter backspace sebenarnya mundur. Untuk versi golf, ubah karakter "^ H" menjadi satu backspace (^ H):

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

Catatan:

  • Aktivitas ini terlihat selama 2 detik.

  • Itu tidak menggunakan window manager atau semacamnya, tapi saya menganggap seni ASCII sebagai "gui". Jika Anda menjalankan perintah di jendela terminal, yang sekarang menjadi kasus biasa, aktivitas ditampilkan di jendela itu. Itu tidak membuka jendela baru.

  • Pengguna dapat menutup program lebih cepat dari pada penutupan otomatis dengan menekan "CTRL-C" dalam waktu 2 detik setelah memulai program. Pengguna yang lebih nyaman menggunakan GUI mereka dapat meletakkan kursor pada "X" kecil di sudut jendela terminal, dengan cepat, dan "klik" itu.

  • Program ditutup setelah 2 detik jika tidak ada gangguan dari pengguna. Pengguna hanya dapat membuatnya lebih cepat ditutup.

  • Apa yang menyebabkan program tutup adalah selesainya "gema" final.

Glenn Randers-Pehrson
sumber