これまでで最も役に立たないプログラム![閉まっている]


8

これまでで最も役に立たないマシンに触発されました。

以下を実行する最短のプログラムを作成します。

  • グラフィカルウィンドウを作成し、すぐにウィンドウを閉じてプログラムを終了します。
  • 視覚的に明らかな方法でこれを行います。マシンのスイッチを押す「アーム」のように、プログラムはGUIで視覚的な方法を使用して、プログラムを閉じる必要があります。
  • この視覚的な方法は、プログラムを終了させるものでなければなりません。あなたはそれを横に何かとして示すことはできません(横に他のものがあるかもしれませんが)

注意:

  • プログラムは、アクティビティが終了の原因である限り、目に見えるアクティビティが人間に見えるように十分長く表示される必要はありません。
  • ウィンドウはGUIでなければなりません(可視の出口メソッドを含むグラフィカルウィンドウを表示する必要があります)。
  • 視覚的な方法は、自動的に行われなかった場合にユーザーが実行できる方法である必要があります。ユーザーがこれを実行できるようにするためにコードで何を変更する必要があるかを説明します(Isziに感謝)。
  • ユーザーからの干渉がない場合はプログラムを閉じる必要がありますが、ユーザーが干渉する場合は、プログラムを自動的に閉じる必要はありません。
  • プログラムが終了する原因を説明してください。

例:プログラムでクリックされるボタンを含むウィンドウ。プログラムを閉じる短いコードスニペットを実行します。


2
人間が見るのに十分に見えないプログラムの場合、答えには、コードで変更する必要のある事項(タイマー値の追加/増加など-ただし、基本的に機能を変更しない)の記述を含めることをお勧めします。それが実際に視覚的なことをしていることを人間に示す。
— Iszi

1
これはコードゴルフなのか人気コンテストなのか?
— ケビン

1
私のTI-BASIC回答を、他の回答(現在受け入れられている)よりも短いコンパイル済みバージョンに変更しました。それを変更していただければ幸いです:)
— Timtech 14

1
なぜこの質問がDVdとVTCdなのか、私は気になります。1つには、これには客観的な勝利基準があります。それは[コードゴルフ]です。これは最良の質問ではないことは理解できますが、なぜVTCdなのですか?
— Justin

回答:


8

TI-Basic、3バイト

DispGraph:1

hex: 31 3E DF

説明

DispGraph グラフを表示します(グラフィカルウィンドウ)

:11(プログラムの最後のステップで1to Ansを保存することにより)を押すことをシミュレートし、計算機をホーム画面に戻します。ユーザーは同じことを行うことができます。


2
GTBは、各コマンドのシンボルが2バイトの値を格納していることを考えると、ちょっとばかげています。
— TheDoctor 2014年

(すべてのOSがのためにシングルバイトのトークンを使用する場合は必ず、おそらく4はない同意は、I(CalcSysを用いた検査からは)6としてカウントう:と1)。ファイルシステムのオーバーヘッドとテーブルは明らかにカウントに含まれていません。
— nanofarad 14

2
コンパイルとはどういう意味ですか?TI-BASICが解釈されます。
— ジェイコブ

@Jakob当時、私はTI-Basicがどのように機能するかについてもっと混乱していました。私が言わなければならないのは、ソースが3つの1バイトトークンであるということです。この答えを修正しましょう
— Timtech、2017年

@Jakob行きます。当時は、トークンではなくASCIIバイト数でTI-Basicプログラムをスコアリングしていたと思います
— Timtech

10

ルビーと靴、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+?<}}

「閉じる」ボタンを押す小さな矢印を作成します。(閉じるボタンを手動で押すと、ウィンドウも閉じます。)

スクリーンショット


9

Windowsバッチ、4バイト

次のプログラムを.batユーザーフォルダー(C:\ Users \ username)のファイルに保存します。

Exit

Start、Runプロンプトから実行すると、新しいウィンドウが開き、コマンドを入力Exitして実行します。


1
「ウィンドウはGUIでなければなりません(可視の出口メソッドを含むグラフィカルウィンドウを表示する必要があります)。」-ウィンドウに可視のexitメソッドが含まれている場合は、議論の余地がありますが、含まれていないと思います。
— gronostaj 2014年

4
@gronostaj右上隅にXがあります。
— セイリア2014年

1
ああ、なるほど。あなたはルールを悪用しています。終了する可視メソッドがあり、ユーザーはプログラムと同じことを実行できますが、それらは終了する2つの異なるメソッドです。それは賢い、+ 1。
— gronostaj 2014年

スペース文字のみの.batを作成する:1バイト?
— SEarle1986

@ SEarle1986、スペース文字はプログラムを終了させません。バッチファイルの最後に達したため、終了します。 Exitバッチファイルが完了する前にウィンドウを閉じます。
— Hand-E-Food

4

JavaScript: 133 117

(これを機能させるには、Webブラウザーでポップアップを許可する必要があります)

コードゴルフ:

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

ソース:http: //jsfiddle.net/gt2t8/2/


なぜサイズを変更するのですか?
— ジャスティン

@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
117文字に減少:(function(){w=window.open(),d=999,i=setInterval(function(){w.resizeTo(d-=9,d);if(d<0)clearInterval(i),w.close()})})()
— Griffin

@グリフィンありがとう!あなたの提案で更新
— user1886419

1
ページを離れることなく走れるもの。驚くばかり。
— セイリア2014年


2

x86 / Win32アセンブリ(337 310 271バイト)

.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

MASM32(ml /c /coff /Gz /I<include path> test.asm/ link /SUBSYSTEM:WINDOWS /LIBPATH:<library path> test.obj kernel32.lib user32.lib)でアセンブルします。

「OK」ボタン付きのメッセージボックスと、999ミリ秒後にユーザーからのキャリッジリターンプレスをシミュレートするスレッドを作成します。

$先頭のアドレスで置換されているcodeアセンブラ/リンカによってセクション。最初の命令は、push byte 0(によって生成されるため、暗黙的にinvoke)としてエンコードされ6A 00、nullで終了する文字列と等しくなります"j"。とを呼び出すときに、これを利用MessageBoxしFindWindowます。


アセンブリは271バイトですか、それともマシンコードのサイズですか?
— 12Me21

1

X Window Systemを使用したBash、10文字

xterm -e :

xtermウィンドウを開き、bash no-opを実行して:から、xtermウィンドウを閉じます。

あなたは第二のために無用のウィンドウを表示する場合は、変更することができます:に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

対話型シェルで1行ずつ実行する必要があり、ユーザーはマウスを移動できません。

  1. アプリケーションが起動します

ここに画像の説明を入力してください

  1. アプリを閉じる動作のボタンがアプリウィンドウに追加されます

ここに画像の説明を入力してください

  1. ボタン上でマウスを押すイベントを生成します—カーソルはスクリーンショットでは見えませんが、ボタンの上にあります。ボタンが押し込まれ、エンボス加工される前にボタンが押されたことがわかります。

ここに画像の説明を入力してください

  1. 最後に、マウスボタンを離すイベントを生成します。

    a。実際に送信する前の画像(Enterキーを押す前) ここに画像の説明を入力してください

    b。インタラクティブシェルに入った後、アプリウィンドウがちょうど消えました。 ここに画像の説明を入力してください

tcl'ersへの注意:以下 を使用して、ウィンドウのX閉じるボタンで直接同じことを実行しようとしました:

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

しかし、私は成功しませんでした。


0

バッシュ-エコー(50バイト)

ゴルフしない、54バイト:

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

ゴルフ、50バイト

バックスペース文字は実際にはバックスペースであるため、ここではゴルフバージョンを正確に表示できません。ゴルフバージョンでは、両方の "^ H"を単一のバックスペース(^ H)文字に変更します。

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

ノート:

  • アクティビティは2秒間表示されます。

  • ウィンドウマネージャーなどは使用していませんが、ASCIIアートは「gui」として数えています。ターミナルウィンドウでコマンドを実行している場合(これが通常のケースです)、アクティビティはそのウィンドウに表示されます。新しいウィンドウは開きません。

  • ユーザーは、プログラムを開始してから2秒以内に「CTRL-C」を押すことにより、自動クローズよりも早くプログラムをクローズできます。GUIの使用に慣れているユーザーは、ターミナルウィンドウの隅にある小さな「X」にカーソルを合わせ、すばやく「クリック」できます。

  • ユーザーからの干渉がない場合、プログラムは2秒後に閉じます。ユーザーはそれをより早く閉じることしかできません。

  • プログラムを終了させるのは、最後の「エコー」の完了です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.