「额……好吧,这是要逼我出杀手锏啊!那接下来就是故事时间……」
老爹摸了摸鼻子,面露无奈之色。
一听到老爹说故事时间,我和小弦子都挺直了腰杆,满脸全是好奇。当然了,我们俩的好奇是不同的,我是对故事的内容感到好奇,而小弦子是一次亲身体验老爹这种教学模式,所以更好奇老爹会如何让故事和编程扯上关系的。
「西游记都看过吧?」
「嗯嗯,每次放暑假都播放,关键是爷爷奶奶、老爹老妈你们看了几十次也看不厌,我跟着你们都看完几遍了……」
我点了点头,然后开启了吐槽模式。一旁默不作声的小弦子也深以为然地点了点头,表明了自己的态度。
「那啥,着就是经典,爷爷奶奶是看这部剧长大的,老爹老妈也是如此。当然了,这些都不是重点,我们今天的关注点在里面有一个法力不高明,炼丹第一名的白胡子老爷爷,你们还记得么?」
「太上老君,太上老君!孙悟空的火眼金睛就是他用炼丹炉给练出来的!」
我一连喊了两声,生怕老爹听不见。
「对,就是太上老君,我们今天就说说太上老君和他的炼丹炉背后那些不为人知,也不为仙知的故事……」
说到这里,老爹顿了顿声,学着电视剧里的说书先生做了一个手势。
「话说自从上一次孙悟空大闹蟠桃会已经过了一千百多年,这又到了一年一度的蟠桃大会了,这可把太上老君给愁坏了。」
「老爹,书上说唐太宗在位时期是公元626年到公元649年,到现在满打满算也只有一千四百多年啊!」
「孙悟空被压在五行山下五百年,唐僧救他出来的时候正值唐太宗在位,所以任叔叔说的是对的……」
我本以为是老爹算错了,结果不想被小弦子那平淡的语气给噎了一下。
「哼」
我转过头去,将后脑勺留给了他。
「太上老君为什么要愁啊?」
小弦子压根就没有理我,反而向老爹提问道。
我悄无声息地将头转了回来,因为我也想知道这个问题的答案。
「有道是天上一天,地下一年。人间过去一千百多年,天上不过过去了区区五年多而已。五年前孙悟空大闹天宫,把太上老君为蟠桃大会炼制的丹药都吃光了,而这五年来,为了让众仙家在蟠桃大会上有仙丹吃,太上老君只能忍痛将自己多年累积下来的仙丹分给大家。
如今太上老君的仙丹告罄,蟠桃会又即将来临,你说他愁不愁?」
「那他为什么在这五年来不炼制丹药呢?」
我发声问道,照道理来说,太上老君应该不是那种不懂可持续发展的人,哦不,的仙啊。
「因为炼制丹药的丹方,以及炼丹的炉子被孙悟空给毁了啊!」
「哦,那这可怎么办呢?」
我点了点头。
「经过五年来的冥思苦想,太上老君终于发明了一种新的丹方,于是将丹方分给兜率宫里那些仙童,让他们加班加点的炼制,要在蟠桃大会到来之前炼制足够多的丹药。
就在炼丹事业如火如荼地进行时,太上老君突然发现丹方有重大bug,按照丹方炼制出来的仙丹不仅不能增强法力,延年益寿,吃了反而会法力大减!这可真的是要了命了!
于是太上老君,冥思苦想,终于将这个bug给解决了,然后就必须把新的丹方发到每一个炼制丹药的仙童里边。
炼丹继续,眼看蟠桃大会越来越近,出炉的丹药越来越多,太上老君终于露出了笑容。就在这时,他听说上次换丹方的时候,有个仙童被漏掉了!意思就是说在炼制好的丹药里面混杂着有问题的丹药!
关键是有问题的丹药和没有问题的丹药外形特征一模一样,如果不吃下去的话根本就没有办法分辨出来。这样一来,炼制好的丹药就不能要了,不然吃到问题丹药的神仙还不像当年孙悟空那样,把兜率宫掀个底朝天?
而且不但浪费了很多灵草仙药,离蟠桃会也越来越近了。想到这里,太上老君是两眼一黑,顿时昏倒在地,口吐白沫,四肢不断抽搐。
还好有仙童及时发现,在将太上老君的人中,仙中掐得高肿如同馒头后,太上老君这才醒了过来。
醒来后的太上老君痛定思痛,不惜耗费大法力锻造了一个卦炉V2.0版本,这个卦炉V2.0版本能力比起被孙悟空踢翻,掉落在火焰山的V1.0版本强了去了。
炼丹的时候只需要把要用到的各种药材丢进炉子里,设定好炼丹程序就可以自动炼丹了,十分方便。
于是太上老君再次使用大法力,将炼丹炉给每个仙童都复制了一个。因为复制的炼丹炉和本体炼丹炉存在着某种神奇的联系,一旦本体炼丹炉的炼丹程序发生了修改,这些复制体也会跟着修改。
如此一来,就再也不会出现先前更新丹方时有所遗漏的现象了!于是太上老君按时按量的完成了炼丹任务!
王母娘娘十分高兴,于是就多赏赐了几个蟠桃给他。
太上老君炼丹的故事就和我们刚刚的情况十分类似,如果把每一个方向移动的逻辑比喻成丹方的话,那么把图片尺寸从原来的50x50修改成30x30就如同台上老君更新丹方一样。
但是因为原来的丹方代码已经到了很多仙童的手上代码在很多地方被使用,如果一一更换的话,很容就有遗漏。
如果我们和太上老君一样,把丹方设定在炼丹炉中,炼丹的仙童在炼丹时只需要使用手中的复制品炼丹炉就好了。一旦太上老君需要更新丹方,只需要修改炼丹炉本体中的炼丹程序,仙童们手中复制品自然而然也就跟着改变了,不会再出现遗漏的情况。」
「哦哦」
我和小弦子异口同声地回答道,这下我们是真的听懂了。
「看来你们已经明白了这其中的过程,在C语言中,这其实就是函数的设计理念。」