ITPub博客

首页 > IT职业 > IT职场 > 你以为我在玩游戏?其实我在学编程!

你以为我在玩游戏?其实我在学编程!

IT职场 作者:孤独键客 时间:2019-02-18 10:40:56 0 删除 编辑


阅读本文大概需要 1.8 分钟。


作者 | 八知道也


前几天休假的时候接触了几款挺有意思的小游戏,写出来安利一下,也许能搏同行一笑。



程序员升职记



《程序员升职记》是一款送给宅男们的智力游戏。 在每一层,老板都会派给你一份工作。你可以通过编写小程序自动把工作搞定!一旦你成功了,恭喜!你升职了!



实际上这是一个非常不错的编程启蒙游戏, 指令集与汇编类似 ,作为一个没有学过汇编的弱鸡,这就是我的汇编基础课啦:)


程序的关卡界面长这样,一看就十分硬核,难度阶梯型递增:


简单的加减乘除 -> 斐波那契 -> 去重排序, ......



随便挑选一关进去瞅瞅,可以看到能利用的主要指令包括:

copyfrom, copyto, add, sub, bump+(相当于++),bump-(相当于--),jump/jump if zero/jump if negative等。和汇编比较类似。


我们能做的就是用拖拽的方式组合不同的处理步骤,左上角的小人会根据你的设计去读取InBox的数据,借助中间的地毯(内存)可用空间缓存中间结果,输出最终结果到OutBox中。



当组织好右边的工作流之后,就可以按那个绿色的执行键进行测试,执行键左右两个按键可以进行正逆方向的单步调试,最右边的滑块可以用来控制是否快进。运行起来的效果如下图所示,还是很可爱的。



即使最终通过了右上角上级的考核,也不代表你就完美过关了。


因为游戏还会对你的代码长度和耗时进行评估,并且告诉你哪里还有改进空间。


优化诊断和效率诊断有时候不可兼得,真是逼死强迫症啊。


后者更多时对程序设计的考验,但前者有时难以捉摸,由于指令集有限,即使逻辑一样,jump的时机不一样会导致程序长度有那么一两行的差异,总之要达到前者请尽量复用代码。



游戏还有一个个人欣赏的优点:支持答案以伪代码的形式导入导出,这个特性很体现程序员思维方式,非常有利于爱好者分享讨论自己的解法,已经发现github上有人上传了自己的解法大全,并有几百个star。



7 Billion Humans



比较详细介绍了上面那个游戏,再简短地介绍一下它的续作:7 Billion Humans


和前作最大的不同是移除了input和output,但是引入了并行,同步,随机,变量,循环,条件判断和更复杂高级的计算指令,难度比第一代有所上升,使得寻找同时满足效率和长度的解法愈加困难,运行起来的效果也是更加忙碌。



以上游戏Steam均有销售,支持Win和Mac,如有兴趣,请尽量支持正版。





往期精彩回顾


欢迎关注我的公众号「程序员的成长之路」,阅读更多精彩!  


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69902700/viewspace-2636231/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
一个不羁的码农,终身学习者。公众号「程序员的成长之路」。目前就职于一家游戏公司,主要负责服务器端,以及web系统的开发工作,对Java相关知识比较擅长。

注册时间:2018-12-14

  • 博文量
    95
  • 访问量
    89256