> For the complete documentation index, see [llms.txt](https://become-a-programmer.2baxb.me/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://become-a-programmer.2baxb.me/cheng-wei-kai-fa-zhe/di-yi-ge-cheng-xu.md).

# 第一个程序

新书开始的第一章，本来想以“为什么我想成为程序员”的契机入手，写点什么有趣或者让人吃惊的故事。

结果却反而让我吃了一惊：无论我怎么回忆，都想不起来那个“想要成为程序员”的瞬间了，似乎“成为程序员”这个想法是我与生俱来的，跟吃饭喝水一样的本能。

不过我倒是能回忆起来自己成为开发者的时刻：小学的时候我就接触了电脑，并且接触到了一个叫做《万王之王》的网络游戏，那些年的网游都有一个特点，就是前期铺垫很足，但是显然没怎么考虑后期要让玩家干什么，《万王之王》也是如此。

升到满级之后，为了让玩家有点事做，它加入了一种“额外点数”的机制，玩家满级之后，再7\*24小时的打上十天半个月的怪物，就能获得一个额外的技能点数，额外的点数越多，自然也就越强。

即使再沉迷游戏，也很难有人类能够完成如此枯燥又永无止境的工作，于是各种游戏外挂应运而生，其中有一款叫做zkok的外挂佼佼者，它有两个特点：

一是这个外挂可以脱离游戏客户端直接单独运行，也就意味着外挂可以跳过UI，直接操作玩家的一切行为；

另一个是，它自创了一套脚本语言，所有人都可以通过脚本语言来控制自己角色的行为，某种程度上来说，脚本语言就像是在为自己角色“注入灵魂”。

如今网络上还能搜到一些曾经的zkok的脚本：

```
%scene time_blink
30:time_blink_bc:time_blink
:pop next

%scene begin
30:retime_bc:cast retime on
30:time_break_bc:cast time_break on woman

%scene soul_steal
30:soul_steal_bc:cast soul_steal on %(0,2)
30:soul_steal_bc:cast soul_steal on %(0,3)
30:soul_steal_bc:cast demon_strike on
:pop next
%bc retime_bc
retry:0.5:但是什麽也没发生。
next::回时术的力量%*
call:time_blink:你低头凝神%*
call:soul_steal:你的法力不够 !!
retry:0.5:你上一个动作没有完成, 不能施法!

%bc time_blink_bc
retry:0.5:你才刚扰动过时空能流，时空能流还不稳定。
retry:0.5:你试图扰动时空能流，但是失败了。
next::你的身体突然由内向外放出光芒，以极快的速度闪了几闪。
next::你现在并不忙碌。

%bc time_break_bc
call:soul_steal:你的法力不够 !!
retry:0.5:你上一个动作没有完成, 不能施法!
retry::但是什麽事也没发生。
call:time_blink:你喃喃念道 : 梅加欧依 ～～ 泰依欧姆 ～～ 克雷格 ...

%bc locate_bc
next::你正忙著呢 !
next::你才使用传送不久，没办法这麽快再用。
next:3:你的四周突然一阵模糊不清，转眼间你就消失了。

%bc soul_steal_bc
call:time_blink:你在你和%*
call:time_blink:你划下的六芒星突然发出黑暗的幽光 ...
retry:0.5:但是什麽事也没发生。
retry:0.5:你上一个动作没有完成, 不能施法!
next:你得到 %* 点经验。)
next::你的法力不够 !!
next::那里没有任何人。
next::你现在不在战斗中。
```

深入一点学习的话，还能发现条件、循环、跳转、函数定义和调用之类的语法，即使从今天的视角看，这种语言也可以称得上是某种“程序”。

于是我为了玩游戏能更好的挂机，成为了开发者。

我写的第一个让自己非常满意的程序，应该是实现了一个游戏里的“自动问答机器人”：可以一边打怪练级，一边在世界频道发些城邦（类似于现在游戏里的公会）招人的广告，最重要的是，在其他人私聊我之后，可以让他们通过输入“1”、“2”、“3”之类的内容，可以触发不同的回复内容，也可以自动邀请人加入公会，甚至可以自动完成交易。

那个时候我应该小学刚毕业没多久，在完成这个程序之后，我每天所做的事情就是看着这个“机器人”有没有顺利的完成自己的工作，并对自己写出来的脚本能一次又一次的正确的实现我的意图而惊叹。
