完美结合,10 款提升编程能力的游戏项目!
你是否记得以前的童年时代,你曾经花了一整天,有时甚至不吃饭来玩任天堂游戏(马里奥和魂斗罗....)的日子???
真实一波童年回忆....
不过,从那时起,游戏经历了巨大的转变,人工智能、虚拟现实、云计算等先进技术的融入使其更加广泛和具有革命性。根据报告,全国大约有 3 亿游戏玩家,而且这个数字还在大幅增加。
但是,等等...! 这有什么好处?
好吧,如上所述,游戏本身已经成为一个巨大的领域--你需要明白,现在游戏不再只是一个爱好。
从程序员的角度来看,网络上有很多编码游戏,你可以利用这些游戏平台,以更有趣的方式学习和磨练你的编程技能。
在学习过程中,你可以利用这些编码游戏作为有趣的休息时间,在练习编码技能的同时,也能获得新鲜感。
此外,它还可以帮助你增强你的创造力和解决问题的能力,因为你需要解决各种具有挑战性的问题,并要与世界各地的各种精通的程序员竞争。
在这里,在这篇文章中,我们已经找出了几个有价值的编码游戏,一定会帮助你提高你的编程技能。
1. Untrusted
Untrusted 是一款在线冒险游戏,专为那些想练习和测试他们的 JavaScript 技能的人设计。
在这个游戏中,你需要使用 JavaScript 命令来引导 Dr. Eval 连续穿过机器,并改变他的状态以获得自由。
游戏为你提供了一个类似流氓的游戏环境和一个控制台窗口,其中有生成每个级别的 JavaScript 代码。
而你就可以访问所有的源代码,但为了拯救自己,你需要对源代码进行必要的修改。
游戏有多个关卡,如 cellBlockA,你需要弄清楚生成墙壁的代码并将其移除;theLongWayOut,你需要创建一个新的出口,等等。如果你拥有一些关于 JavaScript 概念和编程的良好知识,这个游戏将是一个相当有趣的旅程。
2. Robocode
通过对相互对抗的机器人坦克进行编程来练习你的编码技能不是很好吗(听起来很刺激,对吗?
是的,你也可以通过这个著名的游戏--《Robocode》做到这一点。
Robocode 允许你使用 Java 或.NET 等编程语言开发一个机器人战斗坦克,与其他坦克作战。你需要为机器人编写人工智能,让它知道该做什么以及如何对战场上发生的事件做出反应。
这个游戏对学习和练习几种编程语言非常有用,如 Java、Scala 和 C#。它还可以帮助你进入人工智能领域。
此外,Robocode 为你提供了一个完整的开发环境,并配有自己的安装程序、内置的机器人编辑器和 Java 编译器。此外,Robocode 是一个开源项目,欢迎大家提出自己的附加组件或模式来展示自己的开发技能。
3. Elevator Saga
Elevator Saga 帮助你展示你的 JavaScript 技能,对电梯的运动进行编程,以有效地运送人员。
这里有各种挑战,如在 60 秒内运送 15 人等,而且挑战逐渐变得困难,你需要想出一个优化的算法来减少乘客的等待时间。
这款游戏对于锻炼你的 JavaScript 技能和算法优化方法确实非常有益。
此外,《电梯传奇》的界面非常简单,你只需要在输入窗口中输入代码,然后点击应用按钮就可以开始挑战了。
下面给出了一些《电梯传奇》的代码例子,让你有个大致的了解。
通知电梯到 1 楼:elevator.goToFloor(1)
如果电梯正在移动,要停止电梯:elevator.stop()
获得电梯目前所在的楼层:elevator.currentFloor();
4. Vim Adventures
如果你经常为使用 VIM 代码编辑器而苦恼,那么《Vim Adventures》肯定是为你而设计的!
Vim Adventures 是一个在线游戏,它允许你在一个类似塞尔达的游戏环境的帮助下,以娱乐和有趣的方式学习 VIM 键盘快捷键和其他突出的 VIM 概念。
这个游戏让你更容易学习和理解 Vim 这个强大的文本编辑器,随后帮助你成为一个更高效的程序员。
同时,在游戏开始时,你只能在四个方向(左、右、上、下)移动,随着游戏的进行,你会遇到其他方面的问题,如与人交谈、收集物品及键盘按键等。
每一个键盘键都被添加到你可以给光标的命令集中,直到你成为 VIM 的专家。此外,每当你拿起一个键盘键时,每次都会向你解释该键的工作和用途,以便你更好地理解。
5. CodeCombat
CodeCombat 主要推荐给那些没有什么编程经验的人,因为它不仅可以帮助你练习你的编码技能,还可以在游戏中为你提供一个卓越的学习过程。
你可以通过游戏学习各种编程语言,如 Python, JavaScript, CoffeeScript, Lua 等。
你需要用这些语言中的任何一种编写代码,告诉角色它需要做什么。
此外,游戏从简单的谜题和挑战开始,然后难度逐渐增加。游戏中还包括各种教程,以熟练掌握语言的语法。
此外,《CodeCombat》是一个开源项目,你不仅可以学习和游戏,还可以对源代码做出贡献,增加新的功能,修复错误等等,以提高你的编程游戏水平。
6. Flexbox Defense
Flexbox Defense 是加强你对 CSS Flexbox 知识和技能的最佳途径之一,它实际上是一个塔防游戏,你需要通过移动塔的位置来阻止来犯的敌人通过你的防线,这样这些炮塔就可以在入侵的敌人越过你之前射杀他们。
你需要使用塔组容器上的'justify-content'属性来定位你的塔。'justify-content'属性接受的几个最常见的值如下。
flex-start
flex-end:
center
space-around
分别代表沿主轴线不同方向进行分布。
7. Code Hunt
列表中另一个可以帮助你在游戏环境中练习和提高编程技能的提法是《Code Hunt》。
这是一个来自微软研究院的编码游戏,你要解决一系列的编码难题来完成各种回合。
同时,它以一种创造性和独特的形式工作,每个谜题只提出测试案例,不提供任何规范。
你首先需要识别模式,然后对解决方案进行编码。通过 Code Hunt,你可以熟练掌握 2 种著名语言--Java 和 C#
由于它是来自微软的龙头企业,Code Hunt 被全世界数以百万计的学生(甚至是专业人士)所青睐,如果你希望以更有趣的方式来加强你的 Java 或 C#编程技能,你一定可以试试。
8. CheckIO
CheckIO 是一个编码游戏,可以提高你的编程技能,特别是两种语言--Python 和 TypeScript。
这款游戏推荐给初学者和高级程序员,以提高编码技能,因为它为你提供了许多不同复杂程度的令人兴奋的挑战来解决。
这些挑战的每一组都被定位在一个不同的岛屿上,用户需要解决所需的编码挑战或难题,才能从一个岛屿穿越到另一个岛屿。
此外,CheckIO 的丰富和支持性社区帮助你与世界各地的各种聪明人分享知识和经验。
甚至,CheckIO 被各种教师和导师用于他们的培训项目或课程,帮助学生练习编码技能。此外,该游戏是高度可定制的。
9. Screeps
为所有程序员提供的另一个流行的编码游戏来了 - Screeps!
这是一款在线实时战略游戏,要求你至少有一些基本的编程知识。
在这个游戏中,你需要在一个与所有玩家共享的特定世界中创建自己的殖民地。而这个殖民地将能够开采资源,建立单位和征服领土。
此外,这些单位需要被编程以对事件做出反应,你可以使用 JavaScript 编程语言对它们进行编程。
你还需要知道,为 Screeps 编写脚本与为任何其他 JavaScript 应用程序编写脚本没有什么不同。而且你还可以通过类似于 Node.js 的语法将你的脚本分成模块,使其更加方便。
此外,你也可以使用其他语言,如 C++等,并可以通过 WebAssembly 进行编译。另外,Screeps 允许你为游戏引擎的开发做出贡献,你可以修改游戏对象的行为。
10. CSS Diner
最后是 CSS Diner - 一个帮助你练习和掌握 CSS 技能的编程游戏。
这款游戏帮助你通过游戏中的所有 32 个关卡来指挥 CSS 选择器。而且,随着游戏的进行,每一轮的难度都会逐渐加大。游戏由各种令人兴奋的关卡组成,取决于几个突出的属性,如 id、classname、empty、first-child、only-of-type 和其他许多属性。此外,如果你想要一个提示来解决某个特定的关卡,你所需要做的就是将鼠标悬停在表格上的项目上,查看它们的 HTML 标记。
这个游戏将使你更好地了解在 HTML 和 CSS 中针对特定的元素,随后当涉及到 JavaScript 时,它将帮助你遍历 DOM 元素。最重要的是,你可以在你的浏览器中玩 CSS Diner,不需要任何费用或麻烦的操作,如登录、创建账户等。
其他几个也可以考虑的编程游戏有:Codewars、SQL Murder Mystery 和 Duskers。不用说,几乎每个技术爱好者都在某种程度上倾向于游戏。有了上面提到的这些著名的编码游戏,你可以以一种更有趣和冒险的方式提高你的编程技能。不过,如果你正在进行学习,我建议你还是坚持自己的学习过程,因为任何东西的过渡都是不利的。如果,时间充裕,可以利用闲暇时间来增强或者熟练自己的编码技能。
最后,给大家推荐一个非常不错,可以用于练习算法和编程技巧的平台,涵盖 Java、算法、Python、SQL 等不同领域和方向,题库丰富,完全免费:
版权声明: 本文为 InfoQ 作者【Jackpop】的原创文章。
原文链接:【http://xie.infoq.cn/article/7b07acc68f024d7107e2af038】。文章转载请联系作者。
评论