| 
 | 
 
发现这个板块不能回复。。 
再开一贴,算第二讲。 
第一讲链接为: 
http://www.sjever.net/bbs/viewth ... &extra=page%3D1 
 
为了课程不致过长,本讲我只捡重要的说: 
#define MAZE_WIDTH  12  //梅林宽(东西向) 
#define MAZE_HEIGHT 10  //梅林深(南北向)  
下面是进入梅林的同时,还设置了参数如下: 
        north_exit = random(MAZE_WIDTH); 
        x = north_exit; 
        south_exit = x; 
        me->set_temp("plum_maze/north_exit", north_exit); 
        me->set_temp("plum_maze/south_exit", south_exit);  
根据上一讲中: 
                if (can_n) { 
                        me->add_temp("plum_maze/y", -1); 
                        return 1; 
                } 
                if (can_s) { 
                        me->add_temp("plum_maze/y", 1); 
                        return 1; 
                } 
                return notify_fail("这个方向没有出路。\n"); 
        } 
        if (dir == "west" && can_w) { 
                me->add_temp("plum_maze/x", -1); 
                return 1; 
        } 
        if (dir == "east" && can_e) { 
                me->add_temp("plum_maze/x", 1); 
                return 1; 
        }  
总结出:如果能成功的走一步west,east,plum_maze/x就会分别增加或者减少1 
同理:  如果能成功的走一步south,north,plum_maze/y就会分别增加或者减少1 
 
再根据下面: 
        if (dir == "north") { 
                if (x == me->query_temp("plum_maze/north_exit") && y == 0) { 
                        me->delete_temp("plum_maze"); 
                        me->move(__DIR__"road2"); 
 if (dir == "south") { 
                if (x == me->query_temp("plum_maze/south_exit") && y == MAZE_HEIGHT - 1) { 
                        me->delete_temp("plum_maze"); 
                        me->move(__DIR__"road3");  
进入梅庄梅林前面的小路,就被设置了: 
                me->set_temp("plum_maze/x", me->query_temp("plum_maze/north_exit") + 1); 
                me->set_temp("plum_maze/y", 1);  
这个是,在梅林里面,如果没有上面参数,就自动给一个(例如quit,再进来) 
                me->set_temp("plum_maze/x", random(MAZE_WIDTH) + 1); 
                me->set_temp("plum_maze/y", random(MAZE_HEIGHT - 6) + 4);  
就是如果往south走的结果使得 
plum_maze/x=plum_maze/south_exit并且plum_maze/y=9 
就出来,到了梅庄门前 
往north走的结果使得: 
plum_maze/x = plum_maze/north_exit并且plum_maze/y=0 
就出来了 
再根据之前定义的各个数据, 
最终有利合理结论就是: 
总结出:如果能成功的走一步west,east,plum_maze/x就会分别增加或者减少1 
同理:  如果能成功的走一步south,north,plum_maze/y就会分别增加或者减少1 
        plum_maze/x = random(12) + 1; 
        plum_maze/y = random(10-6) + 4 = random(4)+4; 
        plum_maze/north_exit=random(12)  |   
 
 
 
 |