背景:
阅读文章

我的一堂生动lpc语言课

[日期:2007-05-11] 来源:  作者: [字体: ]

注:以上省略,聊天内容,从下行开始!
小鱼儿说道: /* 和 */是一对符号
 小鱼儿说道:中间的所有语句都会被注释
 你说道:注释到哪?> 小鱼儿说道:这是C语言里的约定
 > 小鱼儿说道:比如你写程序的时候
 小鱼儿说道:有时候不一定写的是需要运行的程序


 > 小鱼儿说道:而是你自己的解释
 小鱼儿说道:这些不是程序,而是你的注释,跟笔记一样
 > 小鱼儿说道:那么,你用来注释的方式有两种
 小鱼儿说道:一种是在注释的语句开头加//
 你说道://和/* 的不同在于?
 > 小鱼儿说道:比如 //你好,这是一句注释语句
 小鱼儿说道://只能注释从//符号开始到行尾的部分
 oh
 哦,原来是这样的。我知道了啦。
 > thank
 你对所有在场的人表示感谢。
 > 小鱼儿说道:比如 int a
 小鱼儿说道:比如~ int a
 【窗外】太阳从东方的地平线升起了,苍白无力地发射着光芒。
 小鱼儿说道:比如 int a //定义一个整数变量a
 cool
 What?
 > 'cool
 你说道:cool
 > 小鱼儿说道:那么int a 仍然是正常的语句,会执行
 '你点了点头。
 > 小鱼儿说道:而后面的//定义一个整数变量a是对这行语句的解释,是不会执行的
 oh
 哦,原来是这样的。我知道了啦。
 > 小鱼儿说道:/* 和 *?
 小鱼儿说道:/* 和 */
 小鱼儿说道:注释的是一段程序
 '是一段的首到尾
 你说道:是一段的首到尾
 > 小鱼儿说道:你可以在这段程序的每一行前都加//
 小鱼儿说道:效果是一样的
 ok
 你歪头想了会,说道:好吧!
 > 小鱼儿说道:但是/* 和 */就简单一些
 nod
 你点了点头。
 > 小鱼儿说道:只要在开始加一个/*,结尾加一个*/就OK了
 '懂了
 你说道:懂了
 > 【窗外】风更大了,卷着枯叶,沙土在地上飞快地打着旋,你的衣角也随风云飞舞
 小鱼儿说道: more here
 你说道: set("no_sleep_room",1);// set("no_clean_up", 0)
 > What?
 > ' set("no_sleep_room",1);// set("no_clean_up", 0)这两行,的1 和0 是代表什么?
 你说道: set("no_sleep_room",1);// set("no_clean_up", 0)这两行,的1 和0 是代表什么?
 > 小鱼儿说道:你可以看到程序开头两行就是注释语句,用来说明的
 nod
 你点了点头。
 > 【系统】内存精灵:系统自动清除 0 个变数。

 小鱼儿说道: set("no_sleep_room",1)
 '不能sleep
 你说道:不能sleep
 > '1 代表什么?
 你说道:1 代表什么?
 > 小鱼儿说道:是设置这个房间的属性是不能sleep
 小鱼儿点了点头。
 小鱼儿说道:set是一个函数
 nod
 你点了点头。
 > 小鱼儿说道:有两个参数
 小鱼儿说道:一个是no_sleep_room
 小鱼儿说道:一个是1
 哦,原来是这样的。我知道了啦。
 > '连起来就是一个不sleep 的room
 你说道:连起来就是一个不sleep 的room
 > 小鱼儿说道:set这个函数的作用是把no_sleep_room的值设置为1
 小鱼儿说道:比如
 小鱼儿说道:call tone->set("combat_exp",100000)
 '这个倒是知道的
 你说道:这个倒是知道的
 > blush
 你脸红了。
 > 小鱼儿说道:就是调用tone这个物品
 小鱼儿说道:tone这个物品有一个set函数
 小鱼儿说道:这个call就是调用这个set函数,将combat_exp的值设置为100000
 oh
 哦,原来是这样的。我知道了啦。
 > 小鱼儿说道:房间里的这个set意思是一样的
 'busy smallfish
 你说道:busy smallfish
 > 【窗外】已经是正午了,风没有一点停的意思,太阳早已不知藏到了什么地方。
 小鱼儿说道:就是将no_sleep_room这个变量的值设置为1
 小鱼儿说道:其实,不一定是1
 小鱼儿说道:只要是>0的整数就可以了
 小鱼儿说道:在泥巴其它地方判断的时候
 '这个1 实际意思是代表数词还是什么?
 你说道:这个1 实际意思是代表数词还是什么?
 > oh
 哦,原来是这样的。我知道了啦。
 > 小鱼儿把头摇得跟拨浪鼓似的。
 小鱼儿说道:1表示真
 fly
 太史慈瞪大了眼睛,呆了半响,突然大叫一声“怪物”,身子向后平平飞出,哈喇子在半空中划出一道白线。
 > 小鱼儿说道:这是一个布尔值
 小鱼儿说道:只有两个意思
 '我怎么这么嘬?这个都没想到呢
 你说道:我怎么这么嘬?这个都没想到呢
 > wuwu
 你委屈地低声哭了起来:呜..呜..呜..呜!
 > 小鱼儿说道:0表示假,非0表示真
 小鱼儿嘻嘻一笑,样子可爱极了。
 小鱼儿说道:这样一来,可以理解了吧?
 > 小鱼儿说道:no_sleep_room是真
 你说道:// set("no_clean_up", 0) 这行呢
 > 小鱼儿说道:就是说这里不能sleep
 '具体是什么?
 你说道:具体是什么?
 > '// set("no_clean_up", 0)
 你说道:// set("no_clean_up", 0)
 > 小鱼儿说道:这个是。。。
 小鱼儿说道:这个说来有点麻烦
 小鱼儿说道:你知道
 你说道:不更新?
 > 小鱼儿说道:15分钟会刷新一次
 jump smallfish
 你跳进了小鱼儿的怀里。
 > 小鱼儿说道:真聪明
 小鱼儿双手抱拳,讨好地对你说道:“在下对小兄弟的景仰之情,有如滔滔江水连绵不绝。”
 blush
 你脸红了。
 > 【窗外】风渐渐的小了些,太阳又露出了半张脸,在西方的天空中小心的看着这个世界。
 小鱼儿说道:0表示假
 小鱼儿说道:说明这里会刷新
 nod
 你点了点头。
 > 小鱼儿「呵呵」地傻笑着。
 > 小鱼儿说道:房间,物品,人物,绝大部分属性都是这种方式设置的
 '为什么程序不在行首开始写?而是留几格?
 > 小鱼儿说道:设置房间里的物品,NPC这里也有例子,照着搬就是
 ok
 你歪头想了会,说道:好吧!
 > 小鱼儿说道:这是一个编程习惯
 小鱼儿说道:{和}两个括弧
 '是不是我写的时候,要敲几下空格?
 你说道:是不是我写的时候,要敲几下空格?
 > 小鱼儿说道:定义了一段程序
 小鱼儿说道:为了让人家看起来清溪
 nod
 你点了点头。
 > 小鱼儿说道:理论上讲,每个{后的语句行都有缩进
 oh
 哦,原来是这样的。我知道了啦。
 > 小鱼儿说道:到}恢复
 小鱼儿说道:这样可以让你写程序的时候更容易记住"{"和"}"是对称的
 '是不是我写的时候,要敲几下空格?
 你说道:是不是我写的时候,要敲几下空格?
 > 小鱼儿点了点头。
 你说道:我就是想要明白这一点
 > 小鱼儿说道:一般都是每个缩进都是8个或者4个空格
 '没编过程,太笨了
 你说道:没编过程,太笨了
 > 小鱼儿说道:tone
 'en
 你说道:en
 > 小鱼儿说道:C语言教程的书里
 小鱼儿说道:把if ...else 语句好好看看
 '我得去搞本书看
 你说道:我得去搞本书看
 > 小鱼儿点了点头。
 '光教你太累了
 你说道:光教你太累了
 > 【存盘】您的档案已经自动存盘。
 ok
 你歪头想了会,说道:好吧!
 > 小鱼儿说道:不是,有些东西我也讲不
 > 小鱼儿说道:有本书随时可以翻翻,翻了几次就可以不翻书了
 '有些东东的确是只可意会的
 你说道:有些东东的确是只可意会的
 > xixi
 太史慈嘻嘻一笑,样子可爱极了。
 > 小鱼儿说道:lpc语法跟C几乎一样
 '我现在进修的就是c 语言
 你说道:我现在进修的就是c 语言
 > 小鱼儿说道:对C多少了解了一些
 小鱼儿说道:学LPC不要太简单哦
 '不过还没上到程序课
 你说道:不过还没上到程序课
 > 小鱼儿说道:再给你讲一个对象的概念
 ok
 你歪头想了会,说道:好吧!
 > 小鱼儿说道:泥巴里,到处都是对象
 nod
 你点了点头。
 > 小鱼儿说道:对象就是一个物品的抽象
 小鱼儿说道:这是外部调用 ...
 小鱼儿说道:内部调用就不需要call和对象名了 ...
 oh
 哦,原来是这样的。我知道了啦。
 > 小鱼儿说道:比如这个房间的程序里 ...
 小鱼儿说道:set("no_sleep_room",1) ...
 【系统】内存精灵:系统自动清除 0 个变数。

 sys
 【系统】太史慈[Tone]:...
 > 小鱼儿说道:就不需要说this_object()->set("no_sleep_room",1) ...
 小鱼儿说道:当然这种写法也是正确的 ...
 oh
 哦,原来是这样的。我知道了啦。
 > '内部调用 
 你说道:内部调用 
 > 小鱼儿说道:this_object()表示文件本身 ...
 nod
 你点了点头。
 > 小鱼儿说道:但是每必要这么写 ...
 小鱼儿说道:C语言里的几个概念也要清楚
 > 小鱼儿说道:一个是include,一个是inherit
 你说道:一个是包含,一个是继承
 > 小鱼儿说道:但是有各有不通
 小鱼儿点了点头。
 小鱼儿说道:对哈
 【窗外】已经是正午了,小雨沙沙的下在草地上,满目已是一片枯黄了,江湖人的心也枯死了。
 小鱼儿说道:include就是把include的那个文件中所有的函数都包含进来
 小鱼儿说道:相当于两个文件合成了一个
 小鱼儿说道:inherit则是当前对象是有inherit的那个对象继承而来的
 你说道:include 包含的是什么样的?
 > 小鱼儿说道:举各例子说了
 小鱼儿说道:比如有一个eat()函数
 thank
 你对所有在场的人表示感谢。
 > 小鱼儿说道:很多东西都有这个吃的动作
 > 小鱼儿说道:你就没有必要给每个文件写一个eat()函数
 oh
 哦,原来是这样的。我知道了啦。
 > 小鱼儿说道:你可以用一个特定的文件,写入一个eat()函数
 小鱼儿说道:然后你再很多需要有eat()函数的文件里include这个特定的函数
 小鱼儿说道:这样这些文件就都拥有同样的一个函数的
 小鱼儿说道:而你需要修改这个函数了
 > 小鱼儿说道:只需要修改这个特定的文件,
 小鱼儿说道:就所有的都更新了
 小鱼儿说道:相当于定义共同的函数
 小鱼儿说道:便于维护
 > 小鱼儿说道:而inherit,则概念有所不同
 小鱼儿说道:首先属于生物这个对象
 小鱼儿说道:生物必然有共同的地方
 小鱼儿说道:比如都有细胞
 小鱼儿说道:那么定义一个最原始的对象:生物
 小鱼儿说道:然后比如生物又分植物和动物
 小鱼儿说道:植物和动物都是生物,都拥有生物这个对象所有的属性
 > 小鱼儿说道:你现在开始建立植物和动物这两类对象
 小鱼儿说道:共同的部分就不需要建立了
 '都继承了生物这个特性
 你说道:都继承了生物这个特性
 > 小鱼儿说道:只要inherit生物这个对象
 小鱼儿说道:就自动继承了
 小鱼儿说道:而动物来说
 小鱼儿说道:又分比如人和猴子
 > 小鱼儿说道:人和猴子inhert动物
 小鱼儿说道:就继承了动物的属性
 小鱼儿说道:但是这两个对象又可以定义自己特殊的属性和函数
 小鱼儿说道:然后男人和女人
 小鱼儿说道:又从人继承
 小鱼儿说道:又可以定义自己不通的函数和属性
 > 小鱼儿说道:就是在继承的对象的基础上,增加自己特殊的属性和函数,成为一个新的对象
 小鱼儿说道:继承这个概念,你可以从C++的教材或者JAVA的教材中得到很好的解释
 小鱼儿说道:继承是对象特有的>
 > 小鱼儿说道:这样的好处就是
 小鱼儿说道:比如clean_up()这个函数
 小鱼儿说道:所有物品,房间都有吧
 > 小鱼儿说道:但是未必所有的物品,房间在更新的时候都一样的效果
 小鱼儿说道:如果没有定义新的clean_up()
 小鱼儿说道:那么在更新的时候,都是使用的最原始那个对象所定义的clean_up()
 小鱼儿说道:而有的房间需要特殊
 小鱼儿说道:比如手镯的房间
 小鱼儿说道:更新未必有手镯
 小鱼儿说道:那是这个房间的特殊之处
 > 小鱼儿说道:那么在这个房间里再另外定义clean_up()函数
 小鱼儿说道:就是用自己的clean_up()函数去代替公共的clean_up()函数
 > 小鱼儿说道:这在编程中叫做函数重置
 > 小鱼儿说道:函数执行都是从最前象最后进行的
 小鱼儿说道:比如有一个jump
 小鱼儿说道:如果一个房间里没有自己定义jump
 小鱼儿说道:那么就是一个semote
 > 小鱼儿说道:如果这个房间里定义了一个动作jump
 > 小鱼儿说道:那么先执行这个jump
 小鱼儿说道:semote优先级低,就给屏蔽了
 小鱼儿说道:所以抽象点来说
 小鱼儿说道:所有生物都有“吃东西”这个概念
 小鱼儿说道:但是每个实际的生物,比如人和猴子
 小鱼儿说道:都有自己的特殊的“吃东西”的动作,也就是函数
 小鱼儿说道:因此首先调用的就是自己的这个函数
 小鱼儿说道:因此产生的效果各不相同
 小鱼儿说道:如果你没有特殊定义,那么就执行最原始的定义
 比如大部分房间更新时候的效果是一样的;手镯房间有自己特殊的更新函数;> 就调用了这个特殊的函数,产生的效果就不一样}


尊重作者 转载请注明出处52mud.com

收藏 推荐 打印 | 录入:sbso | 阅读:
相关内容      
内容推送
52mud提供
一起回忆泥巴游戏QQ群68186072
52mud官方微信公众平台
热门评论