EP8 世界再部署

作者:STredduke 更新时间:2016/7/25 13:14:20 字数:2997

这段时间新伊甸不会太平的,但另外一件事情却比新伊甸的这场大战要重要得多,这就是世界的整合。

神主执行长对一些凌乱不堪的内容进行了整理,准备在统一标准以后重新部署到世界中,用以替代一些散乱不整齐的内容,包括科学、修炼等系统的统一化。

全新系统里面,将整个文中世界作为一种特殊空间来看待,由于这种特殊空间是由神来定义的,所以称之为神定义空间,以SDG(Space Defined by God)表示。

注意,这些缩略词是可以忽略不计的,它们的存在只是为了在某些时候需要进行深层次解释的时候便于描述罢了。

所有的那些科学研究用的因素,比如说速度、温度等,不论是标量还是矢量,不论是变量还是常量,都一律认为是Var(Variable)也即是变量。

其中对于那些不可改变的Var,增加一个前缀const(constant)来表示它们是固定不变的,比如说科研领域使用的各种常量,普朗克常量、自然对数、圆周率等,它们就是const Var类型。

任何的SDG都是由Kernel(内核)来负责处理,这个Kernal就是支持整个新系统运行的关键部分。

在新的系统里面,世界上的所有东西,都是一种Obj(Object)对象,这些对象有自己的属性,比如说水有温度和密度、棍子有长度和质量等。

这些Obj通过对它们对应的class类进行实例化得到,比如说神主执行长要记录在节点里面,说一艘乌鸦级战列舰如何如何了的话,那么首先分配一定量的SDG出来,然后以此作为文中世界具象化的基础,将“星舰”这个class进行派生得到一个“战列舰”的派生class,然后对“战列舰”再次进行派生得到“乌鸦级战列舰”这个派生class。

“乌鸦级战列舰”这个class是一个类,它描述的是一类东西而不是某个现实的东西,这种东西有自己的属性,而所谓的实例化,就算是要创造一艘具体的乌鸦级战列舰出来,不过这种制造的事情是工厂完成的,而不是神凭空就变出来了,但在系统里面要这样描述。

这就是新系统的“面向对象”的核心思想,所有的存在都是对象,都有自己的属性,都是某些类的实例,都要通过对类进行实例化才能出现在文中世界里面。

可以说,class是一种模版,它规定了这个东西是什么,有哪些属性,而Obj就把这个class里面这些不确定的属性都给定确定的内容,这就是class实例化为Obj。

这部分内容是必要的解释,因为以后大量出现科学和魔法结合描述的时候会有理论兼容的问题出现,为了便于解释所以此处不得不引入并赘述这些概念,而到时候是不会有大量的临时解释的。

Obj除了包括属性之外还包括了一些Func(Function)方法,这些Func和其他Var等属性一样,都是对象的组成成员。

比如说,一个当老师的米玛塔尔人,首先他是“人”这个class的派生class“米玛塔尔人”的一个实例,其中属性“职业”那一项的数值是“老师”,而“向学生传授知识”则是这个Obj的一个Func。

这个Func可能接受一个Var作为它的参数,然后返回一些结果,比如说“认识十个学生”就是这个Func在获取“学生姓名”的Var作为其参数,然后执行以后返回“教会了学生们知识”这个结果给该Obj所属于的SDG,这部分SDG则将这个变化去联动到其他SDG上,比如说“听课的学生”这个Obj所在的SDG上,以产生“老师教会学生知识”这个现象。

由此,我们就知道,其实所有那些文中世界里面的记录描述、剧情流程等,其实都是各种Obj的Func在互相起作用罢了,我们看到的主要是结果。

因为通常说来,要说出“A杀死了B”这句话作为一段剧情的话,最多不过详细描述“A用什么手段在哪里怎么样杀死了B”罢了,我们看到的都是高度概括性的结果。

如果以新系统来描述呢?

那么整个描述会变得异常复杂晦涩但是非常有理可循,这里简单描述其中一部分让诸位稍稍认知一下新系统的威力:

首先,A和B是两个人,有不同的身份、地位、能力、性格等等,那么分配两部分适量的SDG出来,在其中一份SDG上(注意使用的是“份”这个量词,是因为SDG无法被确切地说是一只、一坨、一块、一段,所以只能笼统地说明为一份)实例化一个“人”的class,并为这个实例化出来的Obj确定好各种属性,比如说A是个残忍狡诈的三十岁中年人并且精通射杀杀人技术,那么有这样的格式:

残忍狡诈的三十岁中年人并且

人 A;

A.年龄=30;

A.性格="残忍狡诈";

A.能力="精通射杀杀人技术";

A.射杀(目标,地点,...);

这部分只是个例子,它省略了很多信息,比如说这个A的生平事迹、过去的所作所为、家庭状况等等,但凡是关于这个人的信息,全部在这个实例化得到的Obj当中,只要认真查看就必然能够得到关于这个人的一切。

第一句“人 A”表达的意思是,实例化“人”这个class得到一个名为A的Obj,后续的那些部分是对A的各个成员进行具体化的定义,在这里所有的Var成员都有自己的具体内容,而所有的Func都有声明(在class中的Func都只含有抽象的Var)。

其中那个“射杀”并不是一个Var,而是一个Func,它是一个方法,由A调用,作用是杀死一个人,可以看到其中标识出来的什么“时间”、“目标”之类的,省略了很多输入的Var,但其作用就是详细入微地表达出这么一段话:“A在什么地方使用什么样的手法如何杀死了一个目标。”

对另一个人,B,的实例化类似。

那么要说出“A在大街上杀死B”,用新系统就只需要这么一句:

A.射杀(B, 大街上, NULL, NULL,...);

这么一句,就表示A在大街上对B动了杀意,通过射杀来追杀B,但是并没有得到“杀死了B”这个结果。

如果要说A追杀B直到确实杀了B才停手呢?

那就是这样记录:(假设这个Func成功完成以后对该Obj所在的SDG返回一个0的话)

while(A.射杀(B, 大街上, NULL, NULL,...) != 0){continue;}

其中的while是新系统关键字,它表示循环,整句话的意思是调用“A.射杀”这个方法(注意,这句话本身的意思就是A去做“射杀”这个动作),直到方法执行以后返回值为0,也即是确认杀死了B,才结束循环,否则就一直反反复复地调用,也就是追杀到死。

那个continue同样是关键字,表示立刻进行下一轮循环,也就是A没确认B死亡的话就再一次调用“射击”这个Func。

如果没有这个continue作为一句缓冲的话,虽然也不会有任何的影响,但在某些特殊情况下会发生其他严重的事情,尤其是涉及到修炼里面的走火如魔的时候。

这是新系统的冰山一角,之后我们不时地会从林剑意的角度去看到这些世界本质上的运行过程,届时将逐步清楚新的世界规则。

至于平时,则还是用非常通俗易懂的传统记录方法在每一个节点里面记录,推动剧情的进展。

这里不妨多介绍一下,科学、魔法、修仙的混合要如何判断。

在新系统下,每一个存在都是实例化某个class得到的Obj,而高度概括话描述事物的class(类)包括了很多很多的Var和Func,简直是数不胜数。

实例化的时候,但凡是要使用到的Var和Func才会在实例化的时候被赋值或者再声明一次,而那些不使用的则要么赋值为NULL(空值)或者要么就干脆完全不使用,这里的清零和不使用是有区别的以后会遇到,特别是在所谓“突破”、“渡劫”、“飞升”之类的事情发生的时候就看得出其中的区别。

比如说,不修仙的人被实例化的时候,实际上是有“精”、“气”、“神”之类修仙炼道必备的属性,这都是一些Var,但是因为他们是实例化为普通人,所以不论如何这些属性都不会被用出来,其他Obj通过调用Func来影响他们的时候也只会在Func对应的Var位置上获得一些NULL值罢了。

又比如说,魔法师们使用的“魔力”、“灵力”之类,也都是“人”这个class里面预留的一些Var,实例化以后就有了自己的值,或者通过调用特殊的Func来补充或者本身就是流类型能够通过外部环境Var来补充。

至于细节上来说,肯定不会是单纯这么一些数值能够量化的,有些或许是由另外实例化的class来表示的,都是有可能的。

总的说来,新系统的替换已经完成了,下一步将逐渐修复各种缺陷,而且其强大的兼容性已经足够让科学、魔法、修仙等内容稳定地纳入新世界当中了,对此我丝毫不表示怀疑。

TBC


设置
阅读主题:
字体大小:
字体格式:
简体 繁体
页面宽度:
手机阅读
菠萝包轻小说

iOS版APP
安卓版APP

扫一扫下载