|
发现这个板块不能回复。。
再开一贴,算第二讲。
第一讲链接为:
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) |
|