モンティホール問題のシミュレーションについてはすでに質問があります。これは違います。ユーザーがします遊ぶモンティ・ホール問題を。プログラムがホストの役割を果たします。モンティボット、あなたが好きなら。
手順は次のとおりです。
- 3つのドアのどれが賞品を隠すかを(ランダムに)選択します。
- 3つのドアの視覚表示を出力します。簡単
ABCにできます。または3つの正方形。または何でも。 - ドアの1つを選択する入力を受け取ります。これは、選択したドアをマウスでクリックするか、1文字の入力(
B)などです。 - 別のドアを開きます。選択したドアを開けません。メインプライズを隠すドアを開けないでください。それはありますが、選択肢がないわけか、それはありますが、2の選択肢を持っていることを意味します。2つの選択肢がある場合は、ランダムに1つ選んでください。ドアが開かれ、その背後に賞品が隠されていないことを視覚的に示します。プログラムのテキストベースの入力/出力の場合、これはoutputのように単純で
AB0、ドアCが開かれたことを示します。もっと独創的になってください。GUIプログラムを実行している場合、表示の選択はユーザー次第です。 - ユーザーからの入力を受け入れます。ユーザーは、入力する
stickかswitch(または、GUIプログラムの場合はボタンをクリックするか、選択入力を使用するなど)できます。利用者は以外を入力した場合stickやswitch、実装が定義されていません。好きなことをしてください。 - テキスト
You won!またはを出力しますYou lost。 - プログラムを終了します。
ルール:
- ランダムに何かを選択する必要がある場合、暗号のランダム性について心配しないでください。どの
rand()機能でも実行できます。 - プログラムはチートしてはなりません。賞品はゲーム開始前に設定されている必要があります。つまり、手順は指定された順序で実行する必要があるということです。まず、背後にある賞品を隠すドアを選択し、次にプレイヤーに選択を求めます。ステップ4で開くドアの選択は、ステップ4で行う必要があります。事前に選択されていません。
- ステップ6の出力は正直でなければなりません。
- これはコードゴルフです。最短のコードが優先されます。
初めてこのサイトに投稿しますが、私はたくさん潜んでいますので、私はあなたの規範に精通していると思います。
—
TRIG
meta.codegolf.stackexchange.comには、質問を提案し、公式に投稿する前に問題を解決するためのスレッドがあります。ここで具体的に間違っているものがあるかどうかはわかりませんが、それが解決された可能性がありますが、次回のために知っておくと良いかもしれません。
—
地下
私は勝者がちょうど別のgolfscriptの答え...になることをプレビューしています
—
ビクターStafusa
ところで、「独創的であること」は、コードゴルフとうまくいきません。なぜなら、独創的であることはいくつかのバイトを消費し、コードゴルフの目的はこれの反対だからです。
—
ビクターStafusa 14
ええ、@ Victor。独創的であることは要件ではありません。私は(a)これをコマンドラインプログラムに限定したくありませんでした。(b)非コマンドラインプログラムがユーザー選択をどのように実装するべきかを知りませんでした。それで、私はそれを回答者に任せました。独創的であることはオプションですが、それは余分なポイントを獲得しないものです。
—
TRiG 14