强烈推荐程序员玩的游戏!看截图你就明白了
起初一看,以为是写x86汇编。其实是游戏自己设计的一指令集。好在只有十几个指令,花个一、二十分钟就可以看完手册。然后就可以开始玩了。
这个游戏就是让你写代码解决题目。为什么它是游戏呢?因为它是一个虚构的计算机,有多个CPU,每个CPU最多执行15行代码,只有2个寄存器,但是稍加利用,旁边的几个CPU也可以协助寄存数据。
所有的题目都非常简单,用C语言实现不超过5行,在这个游戏上实现就比较费劲了。首先,只有一个ACC寄存器和一个不那么方便访问的BAK寄存器,一个简单的if-else可能都有写5、6行。其次是每个CPU代码长度有限,最多15行,所有必需足够简短。运行正确后,系统会打分,用了多少CPU、多少条指令、花费时钟周期都会列出来,可以和朋友们比赛,谁能写出最短、最快的代码。
我玩了3/5的题目,总结了一些规律:高效的利用寄存器是能否解决问题的关键;逻辑尽量在一个CPU内实现,速递最快;利用并行减少长时间阻塞输入输出。基本上,这也是优化任何代码的必经之路。不过在这种机器上,一般第一次写出来能通过的代码,差不多已经是最优解了。