如何评价漫画《NEW GAME!》中人物樱宁宁的编程水平?

如何评价漫画《NEW GAME!》中人物樱宁宁的编程水平?

半年入门C++,而且编码风格看起来不错,很难得了。

仔细观察的话,debuf那里似乎还应用了一些设计模式……

以及,看起来宁宁应该是学完C语言之后(见第一季OVA)直接学了C++ Primer,在代码中使用了C++11的新内容——不过她的程序似乎还在直接操作裸指针,因此毫无悬念地出现了二次析构的bug,于是就像动画里那样崩了……

对于游戏编程的学习路线,可以参照 @Milo Yip 大大的这篇文章游戏程序员的学习之路(中文版) - 知乎专栏

现在宁宁已经至少走完了C++ Primer的部分,计算机科学部分看了多少不清楚(不过至少Windows编程应该是已经掌握的了),可能掌握了一点设计模式的内容。

稍微看了一下,她的程序可能是这么设计的:

建立了一个vector<debuff>m_debuffs,类型是debuff(可能是自己定义的工厂类),然后把所有出现的debuff都保存在这个vector里,受到伤害的时候遍历一遍当前的m_debuffs然后依次叠加伤害,再根据叠加之后的伤害扣血。

不过这个写法显然是有一些问题的——与其一轮一轮地扣血,倒不如直接遍历完m_debuff,算出一个最终的伤害值之后再直接扣血扣完了事。以及,动画里宁宁说“一直在进行同样的处理”,听起来有点像是初学者经常犯的for循环遍历数组时,写错数组下标的错误——然而实际上宁宁使用的是C++11新提供的基于范围的for循环,整个遍历过程是自动进行的,显然不可能存在下标之类的问题……

并且海子一上来就找出毛病在哪了,连象征性的调试都不搞一下……这个也太夸张了。上了规模的C++程序要调试其实是很麻烦的,这个小游戏的代码量显然不小——尤其是从左侧的Solution Explorer可以看到宁宁自己实现了一个简易的引擎NeneEngine,总代码量不会太小,可能出bug的地方也肯定不只是游戏的逻辑部分。

最后,人生苦短,少女你为啥不直接用C#啊……

PS:宁宁酱太可爱了~~

PS2:这集海子吐槽了改需求哈哈哈哈哈哈哈……果然产品狗是程序猿的天敌……