磁芯大战的玩法也很简单:对战的双方各写出一个程序,然后把它们同一部电脑中,这两个程序在电脑的内存中互相厮杀,有时候它们还会设置一些障碍,有时又会停下来修理被对方破坏的几行指令。当它们被困时,还可以把自己复制一次,逃离险境。这是早期的磁芯大战的情形。后来,两个程序的拼杀转移到了一个叫做虚拟机的程序中。这个虚拟机虚拟了一个类似计算机硬件的环境,两个程序就在这个虚拟机中争夺资源。
而磁芯大战也是一个笼统的名称,事实上,它还可以细分,有很多程序员都编写了自己的“虚拟机”,都有各自特定的游戏指令和编程方式。在看到那个破解游戏的时候,许毅就想到了磁芯大战,这个游戏涉及的内容就多了。除了编程,还要考虑到策略问题,怎样才能获得更多的资源而将对方杀死,可以说这简直有点人工智能的雏形了。
例如有个叫“爬行者”的程序,他每一次读出时便自己复制一个副本,就这样一步一步将对手挤掉,爬行者唯一的目的便是繁殖。而为了对付爬行者,有人便写出了“收割者”,收割者唯一的目的就是找到爬行者,然后将它们毁灭,当所有的爬行者都被自己毁灭之后,收割者便执行程序中最后一条指令:毁灭自己,从电脑中消失。另外还有一个叫印谱的战争程序,它的奇特之处在于它只有一行指令,那就是ove”,是移动的意思。它把自己原来所在地址中的“0”写到下一个地址中,这样,当它开始行动之后,电脑中原有的每一行指令都被它修改为“mov01”,也就是说,显示器上会留下一大堆的“mov01”。
国外,专门有磁芯大战爱好者定期组织比赛,以此来证明自己的实力和奇思妙想。当然,在许毅看来,这个游戏有点太过简单了,趣味性也实在有限。于是许毅便动了自己编写一个类似的游戏的心思。
按照磁芯大战的大致原理,也要首先编写出一个虚拟机,不过这个虚拟机要比它们那些要复杂一点。大战的目的自然是生存,所以可以引进达尔文的“物竞天择,适者生存”的原则,对战不限于两个程序,可以进行大混战。当然,许毅的设想的整个游戏架构非常大,不过饭要一口一口吃,只能从最简单的开始,然后积累经验,一步一步地升级,最终成为一个复杂的生态系统。
“那么,开始动手编写虚拟机吧。”许毅决定编写一个可以直接解释执行汇编代码的虚拟机。因为几乎所有的高级语言最后都会编译成汇编代码,这样就不用受到编程平台的限制,大家都用自己擅长的语言编写。
本章阅读结束,请阅读下一章
手机阅读:http://m.00kshu.win/235972/
发表书评:http://www.00kshu.win/book/235972.html
为了方便下次阅读,你可以在顶部"加入书签"记录本次(第88章 磁芯大战)的阅读记录,下次打开书架即可看到!请向你的朋友(QQ、博客、微信等方式)推荐本书,月之子谢谢您的支持!!