Movie 版 (精华区)

 
发信人: tomey (全世界都在等着你一个人), 信区: Movie
标  题: 牛人解构matrix(含剧情)(zz)
发信站: BBS 水木清华站 (Wed Nov 12 00:47:30 2003), 转信
 
自己写了一个Matrix整个故事顺序的发展过程。
主要根据电影1,2,3和AniMatrix。
完全是自己的理解,我个人觉得解释的还是比较清楚的。
 
 
 
/**
 *
 * The Story of Matrix - Matrix.java
 *
 * @author Artwalker@88, Zhejiang University
 */
 
import System.Matrix.*
 
 
public class Matrix {  // Matrix 程序
 
    public Matrix(TheOne one1, Trinity tri1, Morphes mor1) {
    // Matrix的构造函数,建立新的Matrix世界
 
    }
 
    public Run() {
    // Matrix正常运行函数,这个程序函数非常复杂,其中包括Matrix世界的运行和维护


    // 但是这个程序中设计了功能,就是让Thinity和Morphe程序发生异常,然后被Zion

    // 的人类把他们带出Matrix。然后他们就可以去寻找The One了。
    // 并且,Oracle把自己的思想植入Matrix,化作一个Oracle,然后用来引导和The O
ne
    // 发生关系的一系列人,包括Thinity,Morphe和Niobe等等。
 
    }
 
    public Destroy { // 销毁这个版本的Matrix
 
    }
 
    public Loop() { // Matrix程序的主函数,它执行一个循环过程
 
 
    While(run() && mor1.findNeo()) {
    //Morphes程序的主要任务就是找到The One。
    //一旦找到Neo,Matrix就开始进入升级阶段。
        a.attackZion();
        // 首先Architect调用了攻击Zion程序
        // 这个程序不是控制Matrix的,而是通过source来控制机器章鱼等来攻击Zion
 
        o.guideNeo();
        // Oracle调用引导The One程序。她通过和The One说话让他作出一系
        // 列举动,最终成功转变为The One, 然后去升级Matrix
 
        one1.active();
        // The One被激活,具有The One的超能力
 
        one1.saveWorld();
        // 表面上看是The One拯救人类和Zion的程序,其实就是Update
            // Matrix的程序
        }
    this.Destroy(); //一次Matrix循环结束
    }
}
 
public class TheMatrixStory {
    public static void main(String[] args) {
    World w = new World();  // 上帝创造世界
    Human h = new Human();  // 上帝创造人类
    while(h.Develop().getTechLevel() == Level1) {
    // 当科技发展到很高的一个级别,这里假定为level1
        Robot r = h.CreateRobot();  //制造机器人
        while(r.Develop().getAILevel() == Level2) {
        // 当机器人的AI水平达到某一个值,假定为level2
        // 机器人将会必然的发生叛变
        r.rebell(h);    //机器人叛变人类
        while(w.fight(r,h)) {
        // 返回1,表示当机器人打败人类
        h.destroy(w); //人类污染了天空
        r.control(h); //机器人控制了人类
        r.research(h); //机器人研究人类结构
        r.grow(h); //机器人种植人类以得到能量
 
        source s = r.CreateSource();
        //机器人制造了Source
 
        Architect a = r.CreateArchitect(s);
        //机器人编写了Architect程序,放在source里面
 
        Matrix m1 = a.CreateMatrix();
        //Architect编写了Matrix程序,他好比一个大型互动游戏
 
        a.plugMatrix(h, m1);
        //Architect将人类都plug到Matrix里面
 
        while(!m1.run()) {
        // 当Matrix一代因为太完美而挂掉以后
            Zion z1 = r.CreateZion();
            // 机器人建造了Zion,把一部分思维异常的人从Matrix里面拿出来,
            // 放到Zion。不过这里的Zion不是程序哦,是真实存在的
 
            Oracle o = r.CreateOracle();
            // 同时,机器人编写了一个Oracle来帮助Architect共同实现更好的
            // Matrix。其中,Architect主要负责理性的平衡。而Oracle则加入
            // 了一些非理性的东西。Oracle说过,她要break这种平衡,这样的
 
            // Matrix才会更加真实
 
 
            TheOne one1 = o.CreateTheOne();
            // Oracle编写了一个特殊的The One程序,用来升级Matrix
            // 不过这个程序非常特殊,其他的程序都只能在Matrix中
            // 控制人的大脑,而The One程序完全修改了被选为The One
            // 的人的大脑。但是,为了让the one显得更加真实,也就
            // 是为了不让Zion中的人类发现他们花了很多力气找到的
            // The One其实只是为了毁灭Zion而升级Matrix。Oracle巧妙
            // 给The One添加了激活程序。只有经过激活,The One才会
            // 变成The One,否则只是个技术高超的黑客而已。
 
            Trinity tri1 = o.CreateTrinity();
            // 同时,为了帮助The One激活,以及让The One顺利的完成
            // 升级任务,Oracle写了一个比较特殊的Trinity程序,
            // 她和The One一样,已经被修改大脑。
 
            Morphes mor1 = o.CreateMorphes();
            // 为了能够顺利的找到The One, 完成Matrix升级这个任务,
 
            // Oracle还设计了一个一个Morphes程序,这个程序的特点
            // 是完全相信The One的存在,并且拼命去找The One,如果
            // 没有这个程序,那么Matrix根本就无法完成升级。
            // 他和Trinity一样,也被修改了大脑,所以才会如此执着的
 
            // 去寻找The One。
 
            Agent smith1 = o.CreateSmith();
            // 以Smith为代表的Agent程序也是来帮助升级的。
            // 在前几代Matrix中,它没有什么特殊的。
 
            Matrix m2 = a.rebuildMatrix(one1, tri1, mor1);
            // Architect重写了matrix,第2版和第1版有显著的差异,
            // 但和后面的3,4,5版几乎一样,只是做了一些bug的升级。
            // 这些版本的Matrix里面传入了Trinity,Morphes和The One的程序。
 
            m2.Loop();
            // Matrix的主循环函数
 
            // 下面3,4,5代的Matrix的建立过程都是下面这样:
 
            Zion z2 = one1.CreateZion();
            // 这个过程和第2代Matrix不一样,因为3,4,5代的Zion都是
            // 由前一代的The One建立的。在Zion建立后,老的The One是应该
            // 被销毁的,但是因为The One程序异常强大(后来和Neo一样强大
            // 的Smith连机器大帝都害怕它),所以很多时候也无法销毁,比如
            // 那个法国人就是第一代的The One。至于他为什么具有修改代码的
            // 能力就不奇怪了。而且他也知道Oracle是利用了他来升级Matrix,
            // 所以他恨Oracle,总是想把她干掉。
 
            TheOne one2 = o.CreateTheOne();
            Trinity tri2 = o.CreateTrinity();
            Morphes mor2 = o.CreateMorphes();
            Agent smith2 = o.CreateSmith();
            Matrix m3 = a.rebuildMatrix(one2, tri2, mor2);
 
            // ... 就这样下去,值到第5代的Matrix毁灭,Oracle和Architect
            // 准备建立第6代的Matrix。不过这个时候Oracle的思想发生了变化,
            // 她已经开始厌倦这个无尽的升级过程,并且她自己也慢慢产生了人
            // 类的感情。她希望帮助人类和机器世界达到和平。但这一切都不能
            // 被别人知道,比如Architect。否则计划就泡汤了。
            // 所以Oracle设计了一个更加巧妙的程序,对The One进行了升级,
            // 使他具有了完整的人类情感,新的The One叫做Neo。并且Oracle还
            // 修改了Smith的代码,使他成为一个不一样的Smith,只有联合使用
            // Smith和Neo才能达到世界和平的目的。而且这是个非常危险的赌
            // 注。一但失败,Oracle连自己的命都搭上去了,而且整个世界都要被
            // Smith控制。不过Oracle很聪明的在Neo和Smith的代码中设计了后门,
            // 一但Neo进入Smith体内,Smith就会爆炸毁灭。
 
                TheOne neo = o.CreateDifferentTheOne();
            // 建立了一个不一样的neo
 
            Agent smith = o.CreateDeifferentSmith();
            // 建立了一个不一样的Smith,他添加了很多Neo的代码
            // 而且有和Neo一样的激活程序,一旦死亡就会重生并且变成无敌牛人
 
            Trinity tri5 = o.CreateTrinity();
            Morphes mor5 = o.CreateMorphes();
            //Trinity和Morphes基本没有变化
 
            Matrix m6 = a.rebuildMatrix(neo, tri5, mor5, smith);
            // 第六代Matrix中使用了新的Neo程序,并且加入了Smith这个特殊程序
            // 但是这一切对于Oracle以外的所有人看来都是和前几代一样的。连那
            // 个法国人也是这么认为。所以法国人要阻止Neo去升级系统,他不
            // 希望自己的悲剧在Neo身上重演。不过这件事情可能还有一个人知道,
            // 那就是Seraph。Seraph其实也曾经是The One。因为他的战斗力是和
            // Neo一个档次的。而且Seraph在第三集对Smith说,我曾经打败过你。
            // 只有The One才能打败Agent,所以Seraph有9成可能是某一代的The
            // One。他一开始也和法国人一样,痛恨Oracle,不过他后来知道了
            // Oracle在第六代Matrix的计划,所以离开了法国人,而去保护Oracle。
            // 他希望Oracle的新计划能够实现。
 
 
            m6.Loop();
            // 在第六代Matrix中,一切都和以前一样正常运行。
            // Trinity和Morphes还是被Oracle和Architect利用的玩偶。
            // 他们到处寻找Neo。希望能够拯救世界。
            // Oracle通过和他们的对话,使得他们深Neo就是The One。
            // 而Oracle一开始和Neo说的每一句话都非常隐讳。比如Oracle并没有和
            // Neo说你是不是The One,她只是说你自己心理清楚,然后又说Morphes
            // 好可怜啊...这样让Neo误以为自己并不是The One。但是这样说起来,
            // Oracle也没有骗过Neo,好高明的骗人技巧啊.... :)
            // Neo以为自己不是The One,所以才去救Morphes。这样就会被smith
            // 杀死,然后才能被激活。然后Neo再杀死smith,smith也被激活了。
            // 这一代的smith身上,Oracle添加了一个非常可怕的功能,就是能够
            // 入侵别的程序代码,甚至Oracle和Neo!!
            // 当然,前面说过,Smith只要入侵了Neo,他们就会爆炸。而他并没有
            // 意识到这个问题。不过后来Neo意识到了,这个后面再解释。
 
            // Neo还是和原来一样去完成他的升级任务。而Smith被重新设计后他的
            // 主要目的就是干掉Neo。当然,更深层的目的是为了世界和平,不过
            // Smith和Neo都不知道。虽然Neo最后明白了这个道理。
 
            // Neo和以前几代一样,经过重重困难,找到keymaker。这里说一下法国
            // 人为什么要把keymaker藏起来,其实他的目的很简单,他不希望Neo和
            // 自己一样被Oracle玩弄了。另外还有一个目的,他要试试Neo的实力,
            // 以及通过打斗帮助Neo升级。感觉就像玩RPG,主人公总是要不断练功
            // 才能升级的。总之,法国人其实是在帮助Neo。
            // 因为很显然,他没有伤害Neo的意思,否则以他第一代The One的身份,
            // 完全可以和Neo打。而且估计没有升级的Neo还打不过法国人。
 
            // 在经过一系列战斗后,Neo已经变的更强了,然后去找Architect谈判。
            // Architect还是和以前一样,通过说话要逼着Neo去升级Matrix。这里
            // 有句话很经典,中文意思说白了就是:往往选择只是有权利的人用来
            // 骗人的,他提供了N个选项,但其中N-1个明显是错的。所以,人类所
            // 谓的选择权其实也只是自欺欺人的。因为包括Neo,Thinity,
 
            // Morhpes和Smith这些在内的所有人,都是Oracle和Architect设计的程
            // 序的一部分,他们只是在执行程序,而且他们自己都完全不知道自己
            // 被耍了。好可悲...
            // 他们所有的选择,都是别人教他们的,都是设计好的。
            // 联系到当今现实社会,sigh...
            // 不过,Architect完全没有想到Oracle对Neo做了修改。
            // Neo因为有了正常的人类情感,而不仅仅是个救世主的角色
            // 所以他选择了去救Thinity。这让Architect很郁闷。
            // 同时,Neo通过和Architect的对话,已经大概明白了自己的身份和
            // 作用。最起码,他知道自己是个非常不一样的程序。因为他其实是和
            // Matrix这样的程序是平起平坐的,所以他可以自由修改Matrix的代码,
            // 可以在其中具有超能力。而且,在这个版本的Neo中,Oracle给Neo添
            // 加了来自source的代码,或者是Oracle本身的一些代码。这样他就有
            // 直接控制真实世界中机器人的能力。因为Oracle是有这种能力的
 
            // 他可以控制机器章鱼去攻击Zion。其实在第一集里面,Smith这些
            // Agent就已经表现过这种能力了,不过Agent是把命令机器章鱼的调
            // 用发给Oracle或者Architect,然后由他们2人中的一个去指挥机器
            // 章鱼。而Agent是不可能有这种直接控制机器章鱼的能力的,他们
            // 的权限太低了。
 
            // 说远了,Neo已经认识到自己可以直接调用source的部分代码,所以他
            // 再也不怕机器章鱼了,所以在第二集的最后Neo可以出手制止机器章鱼
            // 的攻击。但是第一次使用source的API的Neo, 因为使用不当,被作为
            // 异常抛出, 就好比try catch throw。那个mobil Ave的火车站是个专
            // 门处理异常程序的地方。它当然不属于Matrix的一部分。那个小女孩
            // 和Neo一样,也是系统抛出的异常程序。因为那个小女孩被称为没有目
            // 的的程序,而Smith一句很经典的话是:every program has its
            // prpose。火车人就是用来处理异常的程序了,它可以把异常程序代到
            // Matrix当中,教给法国人处理。或者就是被Oracle拿去了。
            // 因为在Matrix中,只有法国人和Oracle是有这种修改代码的权限的。
 
            // 因为第3部国内电影院版本明显剪掉了一部分内容,所以暂时无法猜测
            // 具体的含义是什么。但是可以知道,是为了通过法国人帮助Neo升级。
            // 具体的过程我就不讨论了,只说说一下结果是Neo通过各种对话,又对
            // 自己的使命有了新的认识。
 
            // 但是Neo显然还有很多不明白的地方,所以他一定要去找Oracle。
            // Oracle又很隐讳的跟Neo说了一些话,其实已经暗示了Neo要怎么做。
            // 其中最重要的一句话就是:Everything has a beginning has its
            // end.具体怎么重要最后会说。
 
            // 接下来的发展就如大部分观众看到的那样,很好理解。
            // 小女孩,Seraph和Oracle都被Smith吃了。从此Smith具有了无比强
            // 大的能力。不过这个时候,我已经意识到导演两兄弟绝对是个不折
            // 不扣的《七龙珠》迷。这种吃了人然后增长能力的做法完全就是
            // 沙鲁的翻版么... 直到最后的大决战,我更加坚定了自己的想法,
            // smith VS neo 绝对就是 贝吉塔 VS 孙悟空的copy.
 
            // 接下来就是宏伟壮观的Zion保卫战,Noibe开飞船是多么多么牛X...
 
            // Neo经过前面在Mobil Eva和法国人,Oracle的综合教育,他已经知道
            // 了这个事情的解决方法。于是他决定去找machine tow谈判。
            // 另一方面Smith占领了Bain的思想,说明了Smith已经具有超越machine
            // 控制的能力。他甚至可以修改人类的大脑。
 
            // 这种能力只有Oracle,Architect和Machine Tow才具有
            // 这样Smith就已经变的和Machine Tow一样强大。
            // 所以Machine Tow会惧怕Smith。
            // 不过毕竟在真实世界里,Neo的战斗能力稍微厉害一点,所以他可以
            // 干掉Smith。而且当他的双目失明后,他的能力又进一步被激发
            // 他已经可以感觉到所有电子设备的存在。
            // 这有点像中国少林武术中的最高境界:用心眼看世界。
            // 总之这里说的有点神奇,只能说Neo经过Oracle的修改,加上一次次
            // 的升级,已经变得很牛了。他可以和整个机器人的世界链接。
 
            // 这时,Smith超级强大,已经控制了整个Matrix,而且很可能进一步
            // 威胁机器人的真实世界。于是Neo以此为要挟进行谈判。机器大帝没
            // 办法,只能答应Neo的要求。
            // 然后Neo就去和Smith进行超级赛亚人级别的战斗了。
            // 不过Smith太过强大,连Neo也大不过他了。
            // 但是,其实Oracle还是对Smith的身体有一部分的控制权
            // 所以他在最关键的时候,借用Smith的嘴巴说出那句话:
            // Everything has a beginning has its end.
            // Neo立刻就想起来Oracle曾经对他的暗示。而且Oracle还和Neo说过,
            // Smith被设计为Neo的负数,那么他们两个合在一起是什么呢?
            // 显然 X + (-X) = 0 !
            // 所以Neo那个时候终于明白了Oracle交给他的全部使命
            // Neo不再反抗,而是任由Smith把自己吃掉。
            // 当然,Neo和Smith的中合的效果就是2个人一起灭亡。
            // 这也是Oracle早就设计好的。于是,Everything has a end.
            // Neo和Smith的生命也都有了终了。
 
            // 所有被Smith吃掉的人都恢复过来。人类也和机器人达成了和平。
            // 也就是机器人不在玩弄人类,不停的升级Matrix。
            // 而是让人类知道事情的全部真像,让人类选择活在Matrix还是Zion。
 
            // 这时的Matrix虽然没有经过传统意义上的升级,却是从本质上进行
            // 了升级。达到了稳定的第七版,也就是圣经所说的,上帝造物用了
            // 7天,最后达到了稳定的版本。
            // 这个新的Matrix里面,有了一个最大的改变:就是产生了一个没有
            // 目的的程序,也就是那个小女孩。
            // 于是,从此Oracle也无法完全控制Matrix,因为其中有了oracle都
            // 无法预料的事情。所以,oracle最后只是说: I believe.
 
            // Architect对Oracle说你玩了个危险的游戏,就是指Oracle偷偷修改
            // 了Neo和Smith,甚至有意让smith吃掉Oracle自己以达到无比强大的
            // 能力,直接对机器人产生威胁。
            // 不过Oracle表现的很平静,一副一切尽在掌握的感觉。
            // 整个这部戏的导演,其实就是Oracle!!
 
            // 不过电影最后Oracle说,不知道这种和平能维持多久。
            // 而Architect说,他不是人类。
            // 其内含就是,机器是不会打破这个和平的,因为机器严格信守承诺。
            // 但是,人类,却不知道什么时候会再犯老毛病....
 
 
            Matrix m7 = m6.update();
            w.update();
                // Matrix升级到第7版。
            // 整个世界也重新恢复平衡。
 
 
            }
            }
        }
 
}
 
 
--
 
※ 修改:·tomey 于 Nov 12 00:47:52 修改本文·[FROM: 166.111.171.112]

--
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 172.16.9.14]
※ 修改:·hacker 於 11月12日12:50:11 修改本文·[FROM: 172.16.9.14]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:200.686毫秒