微点交流论坛
» 游客:  注册 | 登录 | 帮助

 

作者:
标题: 电影《黑客帝国》测试你的软件逻辑能力和OO编程能力!你看懂《黑客帝国》了么?
凡间幽灵
银牌会员




积分 1329
发帖 1295
注册 2008-11-27
#1  电影《黑客帝国》测试你的软件逻辑能力和OO编程能力!你看懂《黑客帝国》了么?

电影《黑客帝国》测试你的软件逻辑能力和OO(面向对象)编程能力!你看懂《黑客帝国》了么?

在影片里,Neo最后说服了Matrix,拯救了人类,就是因为抓住了Matrix系统的逻辑漏洞。

bool  Combat(&Neo, &Smith)
{
   // Neo 和 Smith 激战...

   // Smith调用memcpy函数,把Neo复制成自己:
   memcpy(&Neo, &Smith, sizeof(Neo));

   if(Neo胜利)
      return  true;
   else
      return false;
}

Matrix时刻删除没用没有目的的程序。
影片末尾,Matrix调用Combat函数,Neo和Smith开战...
战斗结束,Neo所在内存空间内的数据都被Smith用自己的数据填充了,Combat函数返回了false。Neo失败了,Matrix因此删掉了Neo,即冲洗掉了Neo内存空间数据,而实际上冲洗掉了Smith在Neo内存上的复本数据。Smith看到自己的一个复本被删除,惊疑自己怎么是无用的程序了,所以他那时非常惊恐。Matrix看到Smith的一个复本“自杀”(Matrix不知道这个Smith复本是自己一箭双雕杀死的,这是Matrix系统的一个逻辑漏洞),所以Matrix就认为Smith已是个无用的程序,就迅速接二连三地把Smith及每个Smith的复本删除(杀死)。

Smith死得很惨,比赵本山那一万元钱死的还惨。

因此,Neo就与Matrix达成了和平交易,拯救了人类。


“生活”在Matrix控制的虚拟世界中的所有物质都是用先进OO(面向对象)技术编写的程式,“人”、“美女”、“俊男”、“楼房”、“汽车”、“小猫”、“小狗”、“灰尘”、“牛排”、“花”、“鸟”、“树”、“木”、“草”、“虫”等等所有东西都是对象化的程序。

为什么说是“对象化”的程序呢?
虚拟世界与真实世界那么逼真,以致让真正的人类都无法辨别真假(即使顶级天才程序员能辨别出来,那也很不容易,像尼奥、莫菲斯、崔妮蒂、坦克等),然而你知道么,只有具备先进的OO编程思想才能设计出优秀的软件,才能设计出如此逼真的虚拟世界。

※ ※ ※ 本文纯属【凡间幽灵】个人意见,与【 微点交流论坛 】立场无关※ ※ ※

杀毒软件洗洗睡吧,上帝不会为难头脑简单的孩子
2010-3-3 00:29
查看资料  发送邮件  发短消息   编辑帖子
snhao
银牌会员




积分 1791
发帖 1782
注册 2007-6-12
#2  

膜拜,牛A

※ ※ ※ 本文纯属【snhao】个人意见,与【 微点交流论坛 】立场无关※ ※ ※

东方微点论坛
2010-3-3 09:06
查看资料  发短消息   编辑帖子



论坛跳转:

可打印版本 | 推荐 | 订阅 | 收藏


[ 联系我们 - 东方微点 ]


北京东方微点信息技术有限责任公司 福建东方微点信息安全有限责任公司

闽ICP备05030815号