2
ロボットがテレポーターに到達するのを支援する
更新:はじめにPythonフレームワークを追加しました。 宇宙ステーションはクラッシャーボットによって追い抜かれました。ステーションが自己破壊する前に、「ウサギ」と呼ばれる高価で壊れやすいハイテクボットを出口テレポーターに向ける必要がありますが、クラッシャーボットは通路をパトロールしています。 プログラムにはASCIIマップが与えられ、各ターンにはクラッシャーボットと現在のウサギがいる場所が通知されます。その後、プログラムは、クラッシャーボットを避けながらウサギを出口テレポーターに移動します。 実行 Python 2コントローラーを実行するには: python controller.py <mapfile> <turns> <seed> <runs> <prog>... <prog> can be <interpreter> <yourprog> or similar. シードは、実行を繰り返し可能にするために、クラッシャーとプログラムPRNGに使用される小さな整数です。使用する実際のシードに関係なく、プログラムは一貫して実行する必要があります。シードがゼロの場合、コントローラーは実行ごとにランダムシードを使用します。 コントローラは、マップテキストファイルの名前とシードを引数として使用してプログラムを実行します。例えば: perl wandomwabbits.pl large.map 322 プログラムでPRNGを使用する場合は、指定されたシードで初期化する必要があります。コントローラは、STDINを介してプログラムの更新を送信し、STDOUTを介してウサギの動きを読み取ります。 コントローラが回転するたびに、3行が出力されます。 turnsleft <INT> crusher <x,y> <movesto|crushes> <x,y>; ... rabbits <x,y> <x,y> ... 次に、プログラムが1行を出力するのを待ちます。 move <x,y> to <x,y>; ... 更新:最初の行がコントローラーによって送信される前に、プログラムの初期化に2秒かかります。 コントローラーのウサギの位置を入力した後、プログラムが動きに応答するのに0.5秒以上かかる場合、コントローラーは終了します。 グリッド上にウサギがいない場合、ウサギの行には値がなく、プログラムはむき出しの「移動」文字列行を出力する必要があります。 毎ターン、プログラムの出力ストリームをフラッシュすることを忘れないでください。 例 …