最近有点瓶颈,甚至有点儿脑残的感觉,所以花了数个小时做一点好玩的事情,转换一下脑残的状态,叫这个名字是故意的-v-
脑残星球(又称BB星球或2B星球)
主要位于一维空间之中(未来可能拓展出新的维度),脑残星球的一大特点是在高一级维度看来成圆环状首尾相接。
Birus
脑残星球上的主要生命形式,其最大的特点是没有脑子,或者说和其他Birus共享脑子。Birus的遗传信息由BBCode(脑残码)表示。
Broken
活体Birus在其生命活动中可以在空间中分裂出Broken,Broken被视做活体的一部分继续活动。一个活着的Birus至少为一个Broken。(用你们人类的说法是Thread)
Brain
所有Birus都连接至唯一的一个大脑,由大脑负责调度Birus的行动。大脑在多个Birus的多个Broken之间共享。(用你们人类的说法是CPU)
SG
脑残空间中的最基本单位,也是活体Birus的最基本单位。大脑每次会按顺序依次执行每个Broken的一个个SG。
Birus的邪恶目标
停止空间中其他Birus的活动,或者覆盖空间中的所有SG。
前几天看了 @
chone 同学写的那个有意思的东西。于是自己也想试试,不过javascript对于随机生成来说命中率太低了。所以用比较符合机器识别,语法简单的汇编语言会更合适一点。
基本目标就是写一个可以运行某种汇编语言的虚拟机,然后让随机生成的代码在里面运行,然后在此基础上进行优胜劣汰和算法变异。
于是就先造了这个CoreWar的RedCode相似的汇编语言,目前为止已经完成的部分是和RedCode一样的。不过为了方便,未来可能会和RedCode有所区别。
这就是第一部分的东西了。
BBCode
目前可将BBCode视为一种残缺的RedCode方言。每行表示一个SG(在CoreWar中叫做Core):
操作码(.操作模式)? (A模式)?A值/地址 (B模式)?B值/地址
目前只有一个很简陋的虚拟机demo,不断更新中:
http://labs.aligo.me/bb/陆续可能会有更多调整,目前限制了脑残星球只有32个SG,虽然可以更改这个限制,不过还是建议不要试着用这东西写操作系统,除非你想体验一夜回到解放前的感觉XD
欢迎各种建议意见-v-
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/28870
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.