EP2 亚马逊海域

作者:STredduke 更新时间:2017/2/15 22:52:26 字数:3308

这天下从来就没有不散的宴席,凡事都有始有终,在一起共事的人们最终也会各自踏上各自的旅程。

托莱终究是决定离开,虽然在过去的一周时间里面跟随“俾斯麦”编队巡航的过程中并没有碰到任何敌人,但是也同样让人有一种一口气闷在心里出不来的感觉。

太平静了,海面上偶尔还是会遇到一些临时沟渠用以补充后勤物资,但是太平静了。

按照托莱的话说,他是活在刀尖与钢丝上的人,战场才是他最终的归宿,而不是窝囊地死在一个寂静的小角落里面,像个懦夫一样。

他说服了自己摆脱这种和平,选择反身投入到雇佣兵的老行列当中去了,寻找新的发财之道。

走的时候,托莱仍然向赛扬承诺,如果以后有机会,还希望同赛扬合作,因为这一次的经历让托莱坚信,他们还有大把的生意好谈。

当“俾斯麦”重新进入独行巡航的状态中以后,赛扬开始思考前面他一直在思考的问题。

为什么海半球从外部看是有限的,而从内部看是无限的呢?

他通过trace看了半天,发现有一些相同的东西在翻覆出现,特别是有一行叫做prosix_thread的字符串,反反复复地在出现。

从他的视角看起来,这是一个所谓的func,一直在被调用,但是什么时候会被调用呢?

每当安德生根据航海图判断进入了一个全新海域的时候,这个func就会被调用一次。

所以赛扬大胆猜测,是不是每进入一个海域,就会有一个方法被调用?

如果是这样,为什么?

难道说这大海不是一体的,而是按照海域分成块的吗?

可是海域这个概念本身就是人提出来的,只是定性而非定量的概念啊。

实际上赛扬猜测的八九不离十了。

他尝试思考“man”这个词语以后发现他可以在trace以外再使用这个能力,而第一次使用的时候,他看到眼前跳出来一大堆的段落,简直是应接不暇。

后来,他仔细浏览了一边以后,发现了一些端倪。

对于他这种和神主执行长同属admin组的写者来说,头一回接触【至理】的感觉真是非常奇妙,就好像整个人都站到了另外一个层面上去观察这个世界了一样。

看似难以置信的一切,都有了合情合理的解释,而这其中的规则,既飘渺无垠,又唾手可得,真是妙不可言。

就说现在,海半球是由一个叫sea的进程负责管理的,这个进程主要负责管理那些属性上看起来可以被称为是海的对象,一颗等离子行星上的等离子海,与一颗类地行星或者海洋行星上的海,都是由这个进程fork出来的子进程进行管理的。

对于当前的图勒瑟勒第三行星的海半球来说,有一个由sea进程fork出来的子进程sea_SingLaison_Thulecelebica.prco负责管理的。

后面那个.prco是符合【至理】标准的进程后缀,可以认为但凡后缀是这个的字符串,在【至理】里面都代表的是进程类型的对象。

这个进程通过不断创建线程来产生海域,多个海域连起来就成了海半球的内部结构,也是前面提到过的对象可见的海半球。

从外部来看,海半球大小固定,范围有限,没有临时创造,无限连接这一说。

但是从内部而言,为了节省SDG,只在那些有“意识”属性的对象存在的位置,才会临时创建线程建立一片海域,对象离开该区域以后就抹除海域并结束线程。

所以夸张地举例:

假设有巡航距离充分长的巡航导弹从一艘战舰上发射去攻击另一艘战舰,两艘战舰分别相距几个海域的话,那么实际上在sea_SingLaison_Thulecelebica.prco下是如何实现的呢?

首先会分别计算所有涉及到这一发射-巡航-命中过程的对象的属性,看看最终是不是可以命中,其中环境变量、导弹运动状态、目标运动状态等方方面面都需要计算到,由于这些属性是有限项的,所以最终可以被算出来结果。

假设现在算出来的结果是会击中,并且导弹巡航过程没有人能够监视到,那么最终的实现就会是导弹离开发射位置所处的海域以后就从这个世界中消失了,中间的巡航过程统统没有,而在等待了飞行过程所需要的那么长时间以后,导弹会瞬间出现在目标海域中,完成接下来命中目标的过程。

也就是说,只要没有观察者,所有的中间过程都是省略的,只会有起始与结束的过程,而且就是这两段过程,要是也没有任何观察者观察的话,它们也都是根据【至理】的优化处理被省去的。

这些省略为的是节省SDG,提高testinit的执行效率,使得【新伊甸宇宙】更加真实。

有了这样的说法,再看这个问题:如何离开海半球,为什么巡航那么久老是到不了边界上?

这是因为,海域在不断被生成,赛扬他们最多只会同时接触到两个海域,进入一个海域以后,前一个海域就马上消失了,外部观察的话会发现他们始终都在绕一个大圈子。

当然,这样会露馅的,只要有人在同步轨道上观察以后马上提醒他们,整个过程就暴露无遗了。

但是由于testinit是一个试验进程,很多条件都限制死了,比如说“不可能有人从外部观察图勒瑟勒第三行星的状况”这样的,就限制了很多情况的发生,而这些在正式版里面都是会彻底修正的。

那么,打破这样的僵局需要怎么做呢?

就需要找对应接口,sea_SingLaison_Thulecelebica.prco管理的海半球同其边界的海岸线之间有一个固定接口,所有想离开海半球的对象最终都需要通过这个接口做一个类似于传送的方式到达近海海域,从而看到并能够抵达海岸,以离开海半球,进入地半球。

管理这个接口的仍然是sea_SingLaison_Thulecelebica.prco创建的线程,但是这个线程就不是临时创建,短暂使用后立刻清除的了,它是一个轮询线程。

这个轮询线程通过不断询问各个对象的方式来确定是不是有对象要离开海半球,通过接口进入地半球,它发出一个特定协议,其格式形如:QO_STG A。

就是说,这个轮询线程会每时每刻都不断地去向那些符合使用接口要求的对象发生这一串字符串,其中QO是question object,STG是sea to ground,而A是一串字符串,是对象专属的名,比如说“赛扬”、“俾斯麦级战列舰‘俾斯麦’”、“路人‘贾一帆’”等等,用于识别是哪一个对象。

而轮询的对象,一般都要符合“计划离开海半球”、“不在交战状态下”等条件才行,并且要是看不到协议内容的对象就无非做出返回,拿不到返回,轮询线程就不会允许对象使用接口进入地半球。

赛扬这个是例外,因为他看得到协议,当然就知道进行返回。

要进行这些【至理】相关的操作,赛扬需要在脑海中构想,而一般是因为杂念和各种其他思考而无法做到身心如一,所以借助纸笔是非常重要的,写下来就可以了。

但是也不是随便乱写就可以的,既然是协议,那就是规定了发送与接受格式的一套接口,有固定的发送内容的格式,也有固定的返回内容的格式,乱来是一点效果都没有,只会报错。

而果不其然,赛扬才动笔写了一串“我想进入地半球”的话在纸上,但是没什么用处。

因为马上,轮询线程就给他返回一个错误信息:“error code 401:invalid ret!”

这就是说,在协议中,他返回了不符合协议要求的内容,所以发生401错误,告诉他返回的内容错了,重新来过,而轮询内容又一次发来了。

赛扬就接着尝试,试了有逼近4000次以后,身边一大堆一大堆的废纸,他这才试出来,一定要这样返回才行:QSM ./Syoung/* mode=sea。

同样的,query set mode要求设置模式,./Syoung/*当前位置下在Syoung这个索引内的所有对象,mode=sea模式是“海半球”。

这样,轮询线程那边知道有包括赛扬在内的一切和他紧密相关的对象,赛扬、蕾米莉亚、蕾米莉亚的女仆长、安德生、“俾斯麦”战列舰,要求设置模式,而他们当前的,模式是海半球模式。

那么这样,接口就调用起来了,把他们的模式全部设置为地半球模式,也就是让他们进入近海海域内。

由于赛扬本身要求上岸,所以不再符合“计划进入海半球”等条件了,所以轮询线程也不会继续向他发信息,问他要不要通过接口进入海半球。

而海平线上浮现出的一道厚实的海岸线,预示着他们已经离开海半球,进入了期盼已久的地半球。

这个海域,赛扬看到,名字就是亚马逊海域,前面那一块即将靠上去的陆地,就是亚马逊森林。

地半球和海半球一样的,只不过海域的概念以地区来代替了,这个亚马逊森林就好比是连云港海域,一样的处理方式。

“教授,陆地!我们即将靠岸了!”安德生兴奋地大叫起来,“第一个发现陆地的人非我莫属!哦,神主在上,我肯定是整个原住民族群当中第一个发现陆地的人!以后每一个人都将记住我,安德生,的大名啊!”

可惜,现在是白天,蕾米莉亚在瞬间,赛扬也在全神贯注地观察周围的【至理】内容,没有人理会这个自娱自乐的家伙。

赛扬只是搞不明白:“亚马逊,为什么叫这个名字?难不成这里是亚马逊人的地盘吗?而说道亚马逊……”

海岸边,一大群褐色、筋肉、长发飘飘、穿戴豪放、全副武装的女性,引入眼帘。

而赛扬也不得不叹了口气:“我就知道,必然有这样的存在,这就是对象的多样性了。”

随着“俾斯麦”在深水区与浅水区的交界处锚定,赛扬带着安德生走出了舰桥,坐上了一艘快艇,准备前去一探究竟。

TBC


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

iOS版APP
安卓版APP

扫一扫下载