字体:大 中 小
护眼
关灯
上一章
目录
下一页
答支苍志乃的问题 (第1/2页)
话说,大大的你问题,问得我好心动呀~所以单独发个贴来回答你^-^ 其实是我因为自己想说啦~ 在我刚出来工作的时候,嗯,不是第1份工作,算是我第1份程序员工作吧。当时我意外地找到了生命中的第1份程序员工作,好开心啊。话说,我从高中开始就梦想成为程序员,现在很多人会说当程序员不好,但当时的确是我的梦想,同时也是我的理想。我整个高中时期为之奋斗的目标,也是我整个大学时期研究和学习的中心。 那时候的工作是写C语言,这个公司是做电子产品的,我进去后学了2个月的C语言。我在读书的时候,已经学了几年的C语言,进公司是学他们的C语言,而不是学校的C语言。然后,由于开发部主管是汇编出身,他要求所有C程序员都要会写汇编,于是,我跟了一位前辈,同时也是当时的项目负责人,加入日英对译机的开发。当然,我不会日语,英语没强到可以当翻译,所以这方面的算法,跟我没什么关系。他们的机子是出口日本的,想为机子增加些小游戏,算是给我这种新人练手。于是,给了我一些小游戏机,叫我试玩下,看中哪个,就在我们自己的机子里编一个出来。然后,读者们就明白,东西是怎么山寨出来的了>_< 其实中国程序员真心不缺好的思路和算法,就是没别人的创意而已。游戏是别人发明的,但我们能设计出更好的算法。 我玩了下黑白棋,那是生命中第1次玩,从来没玩过那么奇怪的游戏,觉得很有趣。然后,当我玩了一个下午,总算有些心德了,我觉得我能做一个更好的,也更有难度的。于是,我花了一个下午来构思我的算法。由于C51的芯片运算实在太慢了,跟电脑是没法比的,所以那些太复杂,运算量太大的算法都不适用。我就想出一种策略矩阵。嗯,我赋予AI的一方拥有跟我自己相等的策略思维,那么他的对手,必须智慧在我之上,并且运算能力在C51芯片之上才能赢。虽然C51是很慢,8x8=64格的棋盘,用我的策略组,要差不多1秒才能下一格。但人脑,如果不用心去算的话,还是比不过C51的。 然后我用了3天的时间来写我的程序。因为用的是工业板,半成品电路上编程,自然少不了找电工的麻烦。当时公司里程序员大概有130人左右,整个公司就2名电工,轮着应付我们,所以调试的进度很慢,要不然估计2天能搞完。 嗯,这游戏没有程序平台是完全没办法玩的,因为每走一步都要计算同化问题。 游戏完成后,终于可以人机对玩了,我不断修正,并在修正的过程中,领悟出了这个游戏的真正规则,于是完成了属于我自己的‘先手必胜’的理论。当然,前提是你明白先手为什么能必胜,否则还是要输的。 其实这个东东嘛,说它很复杂也不是,说简单嘛,用文字也表达不清楚。基本思路其实是这样的。如果是1维棋盘的话,在格子上面标个数字,就是123456789这样,如果你下了1,AI只能下2,然后你3,AI就是4了,也就是说,当你下了1后,可以推出第N格是谁的,或者这样说吧,你一开始下的是奇数,那你只能一辈子下奇数,如果你一开始不下,等对方下奇数,那么接下来,你就一辈子下偶数。所以即便是扩展成二维棋盘,从你下的第一只子就已经可以推出,第1个角位是谁的,然后第2个角位是谁的。先手每一步都无误的话,可以抢到所有角位,而后手即便每一步都无误,也总是差一步才能抢到角位。没角位嘛,就是被清出局的命运了。 我刚把软件开发好的时候,这个小游戏机,嗯,正确来说是翻译机,不过翻译功能我又不用,所以对我来说,还是游戏机。只有作为设计者的我自己能先手胜利,我同事,上司,以及几十个测试员都无人能胜。后来嘛,投诉了,说太难了,就加了个难度选择功能,说白了,就是我在心目中完美的基础上砍了一部分运算量,把这部分,本来算出来的改成随机数了,但即便是这样,除了我上司还是无人能赢。 然后这个东西出厂了,去了
上一章
目录
下一页