これは「迷路を印刷」の質問のフォローアップです。この質問が気に入ったら、迷路生成アルゴリズムを追加してください;)。
このタスクでは、迷路で宝物を見つけてダンジョンから抜け出さなければならない1人のプレーヤー用のゲームエンジンを実装する必要があります。
エンジンは、標準入力から迷路を読み取り、.
続いてコマンドラインで引数として指定された(ドット)ファイルを含む行を読み取ります。次に、プレイヤー@
はマップ上のランダムな場所に配置されます。次に、エンジンは標準のioを通じてプレーヤーとの対話を開始します。
エンジンからプレイヤーへのコマンド:
continue
:ゲームが終了していません。周囲が印刷され、その後に.
。プレイヤーは@
キャラクターで表されます。観察できないセルはで表され?
ます。finished
:ゲームが終了しました。ステップ数が印刷され、ゲームが停止します。
プレイヤーからエンジンへのコマンド:
north
:プレーヤーを上に移動します。south
:プレーヤーを下に移動します。west
:プレーヤーを左に移動します。east
:プレーヤーを右に移動します。
プレーヤーからの無効なコマンド(壁を叩くなど)は無視されますが、カウントされます。周囲の環境を自由に定義できます。
- 最短コードのポイント。
- 複雑な環境のポイント(たとえば、大きな領域を印刷し、で表示されないセルを置き換える
?
)。 - io形式を尊重しないコードにはポイントなし
例:
この例では、周囲はプレーヤーが真ん中にある3x3セルとして定義されています。
$ cat maze
+-+-+
|#|
| |
+---+
$ python engine.py maze
|#
@
---
.
east
|#|
@|
--+
.
north
+-+
|@|
|
.
south
|#|
@|
--+
.
west
|#
@
---
.
west
|
|@
+--
.
north
+-+
@|
|
.
west
finished
7
@Alexandru:迷路を生成するために何を使用していますか?他の人々の迷路アルゴリズムを使用できますか?それとも、最初の割り当てを完了する必要がありますか?
—
snmcdonald
@snmcdonald:タイプミスを修正しました。他の人の迷路を使用してください。エンジンは標準入力から迷路を読み取ることに注意してください。
—
アレクサンドル
このブログは様々と混合アルゴリズムを使用して迷路世代の優れた記事がある weblog.jamisbuck.org 成長ツリーアルゴリズムで、特定のチェックアウト weblog.jamisbuck.org/2011/1/27/...
—
DVE
迷路とユーザーインタラクションの両方が標準入力からどのようにもたらされるかについて、私は混乱しています。ユーザーは迷路を入力して解決する必要がありますか?ちょっと、迷路の一部だけを表示するという目的を破ります...
—
キースランドール
その上にアプリ(このタスクは別の質問のために残されています)を構築して、コマンド入力から迷路入力を分離できます。
—
アレクサンドル