「ハックルバックルビーンズトーク」と呼ばれることもある特定の子供向けゲームは、2人のプレーヤーでプレイされます。ここでは、ゲームのプレイ方法について簡単に説明します。
- 一方のプレイヤーは「ハイダー」に指定され、もう一方のプレイヤーは「シーカー」に指定されます。
- シーカーは部屋の外に出ますが、ハイダーはあらかじめ選択された小さなオブジェクト「宝物」を隠します。
- 次に、探索者が役立つヒントを提供している間、ハイダーはオブジェクトを探します。
- シーカーが宝物に近づいている場合、ハイダーは「暖かい!」と呼びます。
- シーカーが宝物から離れている場合、ハイダーは「クーラー!」と呼びます。
- 探求者が宝物を見つけたら、彼らはそれを見つけたと発表します。
あなたの子供はあなたと一緒にこのゲームをプレイしてほしいと思っていますが、代わりにcodegolf.SEの質問に答えるのに忙しいです。それで、あなたは彼らとゲームをするプログラムを書くことにしました。ただし、入力する時間をできるだけ短くしたいので、プログラムの文字数をできるだけ少なくするようにしてください。
ゲームがプレイされる部屋を2次元トロイダル正方形フィールドとして定義できます。座標0,0は左下隅、座標99,99は右上隅です。宝物は、いくつかの位置に配置されているn,m場合nとm0から99までの間の両方の正の整数です。
あなたのプログラムは、その作り付けのユーザ入力機能を使用してプレイヤー(例えばからの入力を取得するprompt()、raw_input()あなたの選択した言語がいる場合など)はありません、ユーザーの入力機能を持っている代わりに、STDINからの入力を取ります。ゲームは次のように機能します。
- プログラムは、ある位置に宝を「隠し」
n,mます。 - プログラムは、探索者に初期探索位置を入力するように促します。入力は
x ywherexおよびwhere の形式でy正の整数になります。 - 最初の検索位置
x,yが宝物の位置n,mと等しい場合、プログラムは「正しい」を出力して終了します。さもないと: - プログラムはシーカーに移動を促します。入力フォームで来るとされている整数負でもよいです。これは、シーカーが移動する方向ベクトルを表します(x方向とy方向です)。
a babab - 結果のシーカーの位置が宝物である場合、プログラムは「正しい」を出力して終了します。さもないと:
- 探求者が宝物から離れている場合、プログラムは「クーラー」を出力し、宝物に向かって移動している場合、「ホッター」を出力します。
- 手順4に進みます。
「遠ざかる」と「近づく」という言葉があいまいかもしれません。この課題では、移動後のシーカーの位置が、移動する前の位置よりも宝物に近い場合、宝物に向かって移動しています。そうでなければ、彼らは離れて移動しています。(はい、これは、結果の位置と前の位置が同じ距離にある場合、プログラムは「クーラー」を出力する必要があることを意味します)。
これはコードゴルフなので、最短のコードが勝ちます。仕様が明確でない場合は質問してください。