   由于我们的工作需要大家共同的努力, 所以需要一些必要的规范, 保持一个
良好的代码风格可以使别人阅读你的程序时可以把注意集中在你所想表达的意
思, 而不会把时间花在看明白你的写法.
   这一规范现在属于初稿范围, 需要大家进一步完善, 一旦确定, 每个人都必
须遵守, 不符合规范的就得重写.
   大家在修改系统部分的程序时发现 ES2 原来的程序风格是比较差的, 这在
一定程度上影响了我们的阅读和理解. 所以在修改的时候就尽可能地修正 ES2
原来的格式, 使之更易读一些, 这对我们将来对系统彻底修改是一个很好的基
础.
   大家要相互监督, 相互促进, 使我们的整个MUD的程序逐步有一个清晰的风
格.

1. 必要的注释和说明, 这可以是, 你将思想写成大概的文档, 或者在源文件的
   必要之处加上你觉得能使别人理解你的注释. 不能只有程序, 然后告诉别人
   :你去读我的程序吧... 你看得懂的.

2. 每一行最好不超过 75 或 80 个字符, 过长的行请折行写, 除非十分必要.

3. tab 设定为 4 格, 建议打开将 tab convert to space 的开关.

4. 划分程序段的花括号上下对齐.

5. 每进入一层要缩一个 tab.

6. 适当的加入空格。原则是保持美观。
   请不要出现 if(wizardp(obj)) 这样的格式。

7. 源文件的第一行注明文件的位置和名字

8. ES2 原来好些地方 annihilator 在一行中写了很多东西, 在下面的例子中我
   会说明, 这种情况也应该是要避免的.

9. 如果一个函数中使用了比较多的 this_object() 或 this_player()，使用
   一个局部变量 this = this_object(), ppl = this_player() 来替代。

下面是一个例子

// Filename : /u/falcon/dong_kou.c

#include "dong_kou.h"

void create()
{
    int state;

    state = STORY_D->query_state( "wuliang", "dong_kou" );
    // 这是 if...else if...else 的格式
    if ( state == DONG_KOU_CLOSED )
    {
        // do sth. here
    }
    else if ( state == DONG_KOU_NORMAL_OPEN )
    {
        // do sth. else
    }
    else
    {
        // do other process
    }

    // 最好不要这样写
    if ( ( state = STORY_D->query_state( "wuliang", "dong_kou" ) ) == DONG_KOU_C
LOSED )
    // 以及不要这样写
    if ( state == DONG_KOU_CLOSED ) {
    }

    // 如果一个条件判断句很长, 就这样写
    if ( ( state == DONG_KOU_CLOSED ) ||
         ( state == DONG_KOU_HIT_OPEN ) ||
         ( state == DONG_KOU_NO_DOOR ) )
    {
    }

    // 这里是 switch...case 的格式
    switch ( state )
    {
    case DONG_KOU_CLOSED:
        break;

    case DONG_KOU_OPEN:
        {
        }
        break;

    default:
        break;
    }
}

