qq286735628
V2EX  ›  问与答

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

  •  
  •   qq286735628 · May 6, 2012 · 3316 views
    This topic created in 5149 days ago, the information mentioned may be changed or developed.
    该章节翻译如下:http://blog.csdn.net/lxwde/article/details/131569

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

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

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

    对设计模式不是很熟练,不知道这里面用了哪种设计模式。
    3 replies    1970-01-01 08:00:00 +08:00
    qq286735628
        1
    qq286735628  
    OP
       May 6, 2012
    主要代码如下,先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  
       May 6, 2012
    不懂设计模式,不过走迷宫最简单的办法就是“摸着一侧的墙不停走”。
    qq286735628
        3
    qq286735628  
    OP
       May 6, 2012
    @manhere 嗯,摸墙是一个方法。
    不过这里面是每遇到一个分岔路就新建一个老鼠线程继续走下去。
    关键是我看不懂这用了什么方法。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5384 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 75ms · UTC 03:39 · PVG 11:39 · LAX 20:39 · JFK 23:39
    ♥ Do have faith in what you're doing.