原标题:你以为我在玩游戏?其实我在学编程!
相信各位小伙伴之前都听过一句话,叫做边玩儿边学。又有多少小伙伴被这句话给骗了呢?哪里来的玩儿呢,最后全部变成枯燥无味的学了!
今天给大家介绍的这些游戏真的是让大家边玩儿边学,而且是你玩儿的越好就学的越好!
程序员升职记
《程序员升职记》是一款送给宅男们的智力游戏。 在每一层,老板都会派给你一份工作。你可以通过编写小程序自动把工作搞定!一旦你成功了,恭喜!你升职了!
实际上这是一个非常不错的编程启蒙游戏,指令集与汇编类似,作为一个没有学过汇编的弱鸡,这就是我的汇编基础课啦:)
程序的关卡界面长这样,一看就十分硬核,难度阶梯型递增:
简单的加减乘除 -> 斐波那契 -> 去重排序, ......
随便挑选一关进去瞅瞅,可以看到能利用的主要指令包括:
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,如有兴趣,请尽量支持正版。
CodeCombat
CodeCombat 是一款有趣的开源编程游戏,它使用代码来操控游戏人物,让你一边沉浸在游戏乐趣中一边学习编程技术(Java 、Python 等)。从最初小白入门级的单人关卡到后来高难度的多人对战,各个层次的程序猿都可以乐在其中并从各种战斗中不断吸取编程知识。
CodeCombat 的创始人 George 在开始学习编程时,也曾使用了知名的Codecademy,但他还是觉得太乏味了然后放弃,他了解到自己的朋友们也遇到了这样的情况。后来他想明白了背后真正的原因:
人们想要有趣且高效的学习,但得到的却是缓慢且乐趣不足的课程。
因此,George 和小伙伴们一起创造了 CodeCombat,希望能让想学习编程的人可以真正享受这一过程,而不是将编程当作枯燥的码代码!
CodeCombat 整体的画风与效率君之前推荐的不思议迷宫很相似,可爱卡通风格看起来很棒,音效处理也非常带感。而且整个游戏关卡足足有九千多关,足够你玩。虽然是老外开发的,但是支持中文,小白都能玩儿的特别顺溜!不管是从玩游戏还是学习的角度来讲,都是一个非常棒的选择!
Ruby Warrior
我曾因为说不清道不明的原因,学过一段时间的Ruby——这里的“Ruby”指的自然不是《塞尔达传说》里的货币,而是一位叫松本行弘的日本人所发明的编程语言。他认为“Code for fun”,写代码的人自己写得爽最重要。
于是,同样是要把自己的意图传达给计算机,有些编程语言可能只有唯一的解决路径,而Ruby就跟写小说似的,不同的人就有不同的“行文风格”,同样的结果,实现过程却千差万别。
今天介绍的这款名为“Ruby Warrior”的页游,游戏的情节很简单:一位战士过关斩将勇攀高塔,只为拿到塔顶的红宝石“Ruby”。而每一层塔就是一个关卡障碍,玩家需要用Ruby语言写脚本,指挥战士前进杀敌、休息加血、解救人质,到达通往下一层的阶梯。当然,写的代码不同,战士跨越阻碍的方式和最终消耗便不同。
——就这么一个声画简陋的小游戏,我津津有味地玩了几个小时。
如果你没接触过编程,希望这些游戏能使你对编程产生一点兴趣。当然,编程可能并不好玩:环境配置、文件配置、等待编译之类的琐事会很快耗光你的热情。如果你像我一样接触过编程又最终放弃,这些游戏还能勾起淡淡的往日情愫……
“每个人都应该学习编程,它让你明白应该如何思考。”——史蒂夫·乔布斯乔老先生会编程,算不上厉害的工程师,但这句话很有煽动力。甚至连奥巴马都学过编程,用Java画出了一个矩形。再到最近,谷歌的Alpha GO更是让我坚定了一个信念:
将来的世界必是属于硅基生物的。
可以想象,当天网降临时,底层的作战机器人不会配备语言识别系统。这时你就可以根据记住的一点计算机知识,熟练地大喊出:
“Hello World!”
返回搜狐,查看更多
责任编辑:
平台声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
阅读 (
)