Thinking in Pattern中,老鼠走迷宫使用的是哪种设计模式?

2012-05-06 14:42:33 +08:00
 qq286735628
该章节翻译如下:http://blog.csdn.net/lxwde/article/details/131569

有3个对象:
黑板(cite reference)
显示老鼠探测出来的迷宫的结构信息。

迷宫(Maze)
初始化一个迷宫入口坐标,这里是(0,0)。
根据当前输入坐标,返回该坐标四周情况,是墙壁还是空地。

老鼠(Rat)
向黑板返回自己的当前信息。
向迷宫发出自己的位置坐标,请求当前位置的信息。
遇到分岔路时,创建一个新的老鼠去走分岔路。
当无法继续前进的时候,向黑板报告自己的当前信息后,结束自己所在的线程。

对设计模式不是很熟练,不知道这里面用了哪种设计模式。
2744 次点击
所在节点    问与答
3 条回复
qq286735628
2012-05-06 14:57:09 +08:00
主要代码如下,先new一个迷宫,再new一个黑白,然后把迷宫放进黑板里面,最后new一个老鼠,让老鼠去探迷宫
<code>
Maze m = new Maze();

m.load(args[0]);

Frame f = new Frame();

f.setSize(m.width*20, m.height*20);

f.add(m);

Rat r = new Rat(m, 0, 0);

f.setVisible(true);
</code>
manhere
2012-05-06 15:03:23 +08:00
不懂设计模式,不过走迷宫最简单的办法就是“摸着一侧的墙不停走”。
qq286735628
2012-05-06 15:16:50 +08:00
@manhere 嗯,摸墙是一个方法。
不过这里面是每遇到一个分岔路就新建一个老鼠线程继续走下去。
关键是我看不懂这用了什么方法。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/34838

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX