V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
qq286735628
V2EX  ›  问与答

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

  •  
  •   qq286735628 · 2012-05-06 14:42:33 +08:00 · 2769 次点击
    这是一个创建于 4618 天前的主题,其中的信息可能已经有所发展或是发生改变。
    该章节翻译如下:http://blog.csdn.net/lxwde/article/details/131569

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

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

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

    对设计模式不是很熟练,不知道这里面用了哪种设计模式。
    3 条回复    1970-01-01 08:00:00 +08:00
    qq286735628
        1
    qq286735628  
    OP
       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
        2
    manhere  
       2012-05-06 15:03:23 +08:00
    不懂设计模式,不过走迷宫最简单的办法就是“摸着一侧的墙不停走”。
    qq286735628
        3
    qq286735628  
    OP
       2012-05-06 15:16:50 +08:00
    @manhere 嗯,摸墙是一个方法。
    不过这里面是每遇到一个分岔路就新建一个老鼠线程继续走下去。
    关键是我看不懂这用了什么方法。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2577 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 04:16 · PVG 12:16 · LAX 20:16 · JFK 23:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.