私の犬は私にbarえていますが、私は彼を散歩に連れて行くのが面倒です。考えがある!コードゴルフの人々に私のためにやってもらいましょう!
あなたの課題は、犬の散歩をシミュレートすることです。犬の散歩のルールは次のとおりです。
- 人間(
H)は0,0(デカルト)座標平面から開始し、1秒ごとにランダムに1スペース上、左、右、または下に移動します。 - 犬(
D)は同じ位置から始まり、毎秒0、1、2、または3つのスペースを上、左、右、または下に(もちろんランダムに)行きます。犬は予測が難しく、時には速く走ったり、完全に止まったりします。 - 犬は、人間から一定量(ユークリッド距離)以上離れることはありません。これは、綱の長さ(
L)です。たとえば、Lisの6場合、有効な位置はH(0,0) D(4,4)(距離が約5.65ユニットであるため)ですが、そうではありませんH(0,0) D(5,4)(約6.4ユニット)。- 犬が動いたときにリーシュ距離要件に違反する場合、犬は、距離要件に違反しない決定された方向に可能な限り遠くに行かなければなりません。たとえば、位置が
H(0,0) D(3,4)あり、犬がランダムに3スペース右に移動することに決めたD(4,4)場合、6ユニット以上離れることなく移動できるため、犬はに移動します。(これにより、スペースが0移動する、つまりまったく移動しないことに注意してください!) 
 - 犬が動いたときにリーシュ距離要件に違反する場合、犬は、距離要件に違反しない決定された方向に可能な限り遠くに行かなければなりません。たとえば、位置が
 - その他のルール:人間が最初に動きます。人間は、その動きで綱の長さを超えてはいけません。その場合、別の方向を選択する必要があります。「ランダム」とは、「均一に分布し、パターンがない」ことを意味します。
 
入力は次の形式で提供されます(STDIN、関数パラメーター、ファイルなど)。
"<amount of seconds the walk will last> <leash length>"
例えば:
300 6 // a 5 minute walk with a 6 yard leash
次の形式で出力する必要があります(STDOUT、関数の戻り値、ファイルなど)。
H(0,0) D(0,0)
H(0,1) D(2,0)
H(1,1) D(2,1)
H(1,0) D(2,-1)
...
(行数はカウントされないseconds + 1ため、出力されるH(0,0) D(0,0)行数はになります。)
これはcode-golfなので、バイト単位の最短コードが勝ちます!
