一大波能提高编程技能的游戏

2016-06-15 14:07:00
杨通秀
转贴:
http://blog.jobbole.com/100733/
1122

有时候咱们程序员也需要娱乐或放松一下,但放松的同时,也可以做一些有益于技能成长的事情。今天就来看看这一大波能够训练大脑,并且提升编程能力的网站。

游戏

Codecombat

这是一个可以帮助你学习编程的并且非常赞的多人在线游戏,而不是一个游戏化的编程课程。

6941baebgw1ewv5ulazfgj20hs0bmgol.jpg

在 CodeCombat 中,你扮演一个英雄通过游戏中不同等级的冒险。第一关是 Kithard Dungeon ,里面涵盖了编程的基本概念。整个旅程中你都面临着编程的挑战,如果通过了,你会解锁下一关,并获得经验点,经验点可以用来提升英雄的能力。

6941baebgw1ewv5ukwy4qj20hs0b7adx.jpg

CodeCombat 吸引了很多年轻有抱负的程序员,根据游戏中的统计,62%的用户年龄在18岁以下。

6941baebgw1ewv5ukhis5j20hs0esjuj.jpg

CodeCombat 支持6中不同的语言,包括:JavaScript、CoffeeScript、Lua、Python、Clojure 和 Io。该游戏涵盖了广泛的编程主题,如:字符串,变量,方法调用,矢量绘图等。

2.  Code Hunt

Code Hunt 是一个由Microsoft Research开发的 HTML5 科幻主题游戏。

6941baebgw1ewv5wgbwpuj20hs0ce3z5.jpg

在这个游戏中,你扮演一个代码猎人,负责修复代码,并使它它返回预期的结果。总共有14个等级需要你来完成。

6941baebgw1ewv5ujmhw4j20hs0bnmyp.jpg

Code Hunt 支持 Java 和 C# 两种语言。你可以学习到包括算法、循环和条件表达式等编程概念。你也可以通过阅读 Code Hunt 设计手册 来扩展其他关卡。

3.  CodinGame

CodinGame 对程序员来说是一个巨大的挑战,如果你想提升编程技能,玩CodinGame是一种有趣的方式。

6941baebgw1ewv5uikg0dj20hs0aywgi.jpg

CodinGame 支持包括PHP、C、JavaScript在内的20多种编程语言。用户界面功能强大,可以定制。例如,你可以选择你的代码编辑器的风格: “Emacs”、”Vim”、或 “Classic” (默认)。

6941baebgw1ewv5ui255vj20hs09zq45.jpg

游戏可以选择单人游戏模式或多人模式,多人模式下,你可以与其他玩家共同解决 CodinGame 中的挑战。

4.  Screeps

Screeps 是一个为 JavaScript 程序员准备的大型多人在线游戏(MMO)。

6941baebgw1ewv5ugbgxjj20hs0cedhd.jpg

这个游戏是一个开放的策略游戏,游戏中你控制的单位被称为 creeps ,它可以帮你获得资源、建立自己的领地等等。作为一个多人在线游戏,意味着你的 creeps 会被其他 creeps 所包围。

6941baebgw1ewv5ufxsvzj20hs0bmgmc.jpg

通过编写 JavaScript 来控制你的 creeps 。(Screeps = scripting your creeps)。学习如果玩该游戏,你可以查看文档。

5.  FightCode

在 FightCode 中,目的很简单,就是创建一个能够击败其他玩家机器人的机器人。

6941baebgw1ewv5ufh9swj20hs0b3jt7.jpg

如何创建机器人?通过编写 JavaScript 代码。例如,当某个事件发生时,你可以通过 .rotateCannon() 方法来旋转你的大炮。

6941baebgw1ewv5uf5r8oj20hs0ccgo4.jpg

在创建坚不可摧、支配世界的机器人之前,你首先需要 阅读文档来学习如何编写一个机器人。

其他类似的网站:

Git Game—这是一个终端游戏,用来考察你的 Git 命令知识?。

Elevator Saga—你的任务是使用 JavaScript 编程控制电梯的运动。目标是要高效地接送乘客。

CodeChef—在这里你可以解决实际问题、参加不同的比赛,这些比赛每月都会进行。

Hacker.org 这里有一系列的谜题和测试,可以用来测试你的编程知识。为了通过这一系列的测试,你需要解决问题并做很多的分析工作。

Pex for fun—这是微软开发的一个游戏,在这个游戏中你需要和其他的程序员进行比拼。而代码就是你的武器。

Rankk—你需要解决一系列由易到难的问题。这个游戏是对 Pyramid 游戏的复刻,Pyramid里面有很多逻辑和数学问题。

TopCoder—在这个游戏里你不光可以解决问题,还可以获取真金白银。来自全世界知名IT公司的程序员在这里互相挑战,为的就是赢得他们的奖品。

Google Code Jam—Google 大赛上已经解决的算法问题。在这里你可以自己试一试。

Python Challenge—玩家可以通过 Python 编程解决问题并提升等级。

《程序员该知道的那些编程比赛网站》

《寓教于乐:Vim大冒险游戏》:玩游戏,学习 Vim

解谜

7cc829d3gw1f3sbxpsz8hj20m809qmzj.jpg

Lumosity—一组能够训练大脑的游戏,由科学家和游戏设计师一同开发。

Algorithm Geeks—一个交流讨论算法的 Google 群组。

CodeKata—妙趣横生的编程问题。

LessThanDot—一个专门论坛,程序员在这里发布一些比较困难的编程挑战。

The Daily WTF—类似BYOD(Bring Your Own Device)模式,不过这里是BYOD(Bring Your Own Code)程序员们编写他们自己的代码片段放在这里,用来解决一些比较困难的问题。

Peking University JudgeOnline for ACIP/ICPC—这里包含了不同比赛中涉及到的不同的问题。你可以实时的解决问题并且查看结果,你的答案也会被验证是否正确。

University of Valladolid Online Judge—与北京大学OJ平台类似,但是包含了不同的问题。

Programming Praxis—这个博客每周都会出一些新的编程问题。

Project Euler—包含了很多复杂的数学问题,这让发烧友们感到非常开心。

编程练习

7cc829d3gw1f3sbxqcrtbj20m809qwfn.jpg

4Clojure—在这里你可以通过解决一些不同难易程度的问题来学习 Clojure 。

Prolog Problems—你可以在这里练习逻辑编程。

Ruby Quiz—每周 Ruby 谜题。

Codingbat—由很多 Java 和 Python 的习题(难度各有不同)。

Cyber-dojo—在这里,你可以在在线评分系统的监督下进行编程练习。

Sphere Online Judge—各种各样的编程问题。

Code Wars—8 种编程语言教学。

Rosalind—通过解决实际问题来学习算法和生物信息学。

面试前的准备练习

LeetCode—这个网站是为了帮助程序员准备面试而创建的。在这里你可以找到不同领域的典型问题。

Career Cup—程序员面试时最容易被问到的真实问题。

参考

《collection of coders games to improve your skills》

《寓教于乐:教你学编程的 5 款游戏》

发表评论
评论通过审核后显示。