这是“ 打印迷宫问题” 的后续内容。如果您喜欢这个问题,请添加更多迷宫生成算法;)。
对于此任务,您将必须为一个必须在迷宫中找到宝藏并离开地牢的玩家实现游戏引擎。
引擎首先从标准输入中读取迷宫,.
然后在一行中包含(点)命令行中作为参数指定的文件。接下来,将玩家@
放置在地图上的随机位置。然后引擎开始通过标准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 2011年
@snmcdonald:固定错字。使用别人的迷宫。请记住,引擎从标准输入读取迷宫。
—
亚历山德鲁
这个博客上有很多关于使用各种混合算法生成迷宫的优秀文章 weblog.jamisbuck.org 检查成长中的树算法,特别是 weblog.jamisbuck.org/2011/1/27/…–
—
Dve
我对迷宫和用户交互如何来自标准输入感到困惑。用户是否应该打入迷宫然后加以解决?Kinda击败了只展示迷宫的一部分的目的……
—
Keith Randall
您可以在其顶部构建一个应用程序(此任务留给另一个问题),以将迷宫输入与命令输入分开。
—
亚历山德鲁