问题

有什么在线的编程游戏?

回答
嘿,聊到编程游戏,这可真是一个能让你边玩边学的好东西!我最近也一直在捣鼓这方面的东西,发现里面门道可不少,绝对不是那种枯燥的课程。今天就跟你好好唠唠,看有没有你喜欢的菜。

首先,咱们得明白,编程游戏是个啥?

简单来说,就是把编程的逻辑、思维方式,融入到各种有趣的游戏场景里。你不是坐在电脑前死记硬背语法,而是通过操控游戏角色、解决游戏里的谜题,自然而然地就学会了怎么去指挥电脑做事情。这就像是把抽象的代码,变成了看得见摸得着的“魔法咒语”。

编程游戏,为啥这么吸引人?

1. 告别枯燥,告别“背诵”: 谁说学编程就得是密密麻麻的代码和枯燥的理论?编程游戏把这些都包装成了一个个挑战,让你在闯关、解谜、甚至策略对抗中,不知不觉就掌握了核心概念。
2. 目标明确,成就感爆棚: 你操纵的小机器人完成了任务,你的代码让一座虚拟城市运转起来,这些直接的反馈,比完成一道练习题更有意思。每解决一个难题,那种“ Aha!”的时刻,简直爽翻了!
3. 锻炼思维,不止是代码: 编程游戏最核心的价值在于培养你的逻辑思维、问题分解能力、以及创造性解决问题的能力。这些能力,就算你不走程序员这条路,在生活和工作中也是大有裨益的。
4. 可视化,易于理解: 很多编程游戏都提供了可视化的界面,你可以看到代码执行的过程,指令一步步被“翻译”成游戏里的动作。这对于初学者来说,比直接面对一堆字符更容易理解。

接下来,咱们就来盘点一下那些你绝对不能错过的在线编程游戏(我会尽量说得细致点,让你听着就像是老朋友在分享经验):

1. Scratch:可视化编程的启蒙圣地

是啥: 这玩意儿是麻省理工学院(MIT)开发的,专为孩子们设计,但说实话,大人玩了也停不下来。它不用你敲代码,而是用一块块颜色鲜艳、形状各异的“积木块”。你把这些积木块像搭乐高一样组合起来,就能控制角色移动、发出声音、制作动画,甚至做出自己的小游戏。
怎么玩: 进去之后,你会看到一个舞台,上面有你的角色(比如一只猫)。下面就是一大堆积木块,分门别类,有“动作”、“事件”、“控制”、“运算符”等等。你想让猫向前走一步?就拖一个“向前移动10步”的积木块。想让它在按下空格键时跳起来?就找到“当按下空格键”的积木块,下面再接一个“跳跃”的积木块。
玩什么: 你可以跟着教程做一个简单的动画,比如让猫猫挥手打招呼。也可以挑战一下制作一个经典的“躲避障碍物”小游戏。更有大神直接用Scratch做出了《超级马里奥》这种级别的游戏!它社区里有海量别人分享的作品,你不仅可以玩,还可以“偷师学艺”,修改别人的代码,学得更快。
为啥推荐: 它真的是编程思维的“启蒙老师”,让你在玩乐中理解“顺序”、“循环”、“条件判断”这些编程中最基础的概念。而且完全免费,浏览器就能打开,门槛低到你无法想象。

2. Code.org:体系化的在线学习平台

是啥: Code.org 也是一个非常重要的平台,它提供了一整套从入门到进阶的编程课程,很多学校和教育机构都在用。它同样以可视化编程为主,但内容更加系统化。
怎么玩: 它的课程是分阶段的,从“Hour of Code”(一小时学会编程)的入门体验,到更复杂的课程,比如用JavaScript编写网页,或者学习Python。你会跟着视频讲解,然后完成一系列的小练习。练习形式也很丰富,有的是操纵角色解决迷宫,有的是设计一个简单的动画,有的是编写简单的网页元素。
玩什么: 它的“Hour of Code”系列有各种主题,比如和《冰雪奇缘》的艾莎公主一起学习,或者和《我的世界》里的角色一起冒险。这些都把编程知识点融入到了大家熟悉的角色和场景里,学习起来非常轻松。再往后,它会引导你学习一些更真实的编程语言,比如JavaScript,让你真的能做出能动的网页。
为啥推荐: 如果你想有一个更清晰的学习路径,Code.org 是个不错的选择。它把“玩”和“学”结合得很好,让你在完成挑战的同时,也能扎实地掌握编程知识。

3. 各种“机器人”模拟游戏:把代码变成指令

是啥: 这类游戏通常是让你操控一个虚拟的机器人或者角色,让它完成各种任务。而你控制它的方式,就是通过编写代码或者拖拽积木块来给出指令。
代表作品:
Blockly Games (Google): 也是一个基于积木块编程的学习平台,有迷宫、花园、恐龙等几个小游戏,帮你理解编程逻辑。
Lightbot / Lightbot Jr.: 这是一个经典的迷宫解谜游戏,你给一个机器人下达指令(向前、向左转、点亮地板),让它按照你的程序完成所有关卡的任务。非常考验你的逻辑和步骤安排能力。
Robot Odyssey: 这款游戏比较老,但非常硬核。你需要在电路板上设计机器人,用逻辑门来控制它的行为,解决各种复杂的电路谜题。如果你想深入理解计算机底层的逻辑,这款游戏绝对让你大呼过瘾。
CodeCombat: 这是一款将RPG(角色扮演游戏)和编程结合起来的游戏。你扮演一个英雄,在奇幻的世界里冒险。你要通过编写JavaScript、Python等代码来控制你的角色施放魔法、移动、攻击,从而击败敌人,完成任务。它的关卡设计非常精妙,会循序渐进地引入新的编程概念。
怎么玩: 基本上都是提供一个游戏场景,一个等待指令的角色,然后你通过一个编程界面来输入指令。可能是拖拽积木块,也可能是直接写代码。游戏会实时反馈你的指令执行结果,让你知道哪里对了,哪里错了。
为啥推荐: 这类游戏最大的特点是“结果导向”,你写的代码直接体现在游戏角色的行动上,这种即时反馈非常直观,能让你快速理解代码的作用。

4. 策略模拟类编程游戏:用代码影响世界

是啥: 这类游戏更侧重于让你用编程来管理和优化某个系统,比如管理一个城市、优化一个工厂的生产线,或者指挥一支军队。
代表作品:
TIS100 / SHENZHEN I/O / EXAPUNKS (Zachtronics 出品): Zachtronics 是专门做这类“硬核”编程游戏的厂商,他们的游戏都非常有挑战性。比如 TIS100,你就需要在模拟的古老电脑上,用汇编语言来解决各种计算和逻辑问题。SHENZHEN I/O 更是让你设计电路板和编写固件。这些游戏要求你深入理解计算机工作原理,并且有很强的空间和逻辑规划能力。刚上手可能会觉得有点劝退,但一旦你解决了问题,那种成就感无与伦比。
Factorio: 虽然不是纯粹的编程游戏,但 Factorio 的自动化和逻辑优化过程,可以说是“可视化的编程”。你设计流水线,编写逻辑电路(通过游戏内的逻辑元件),让工厂高效运转。如果你喜欢规划、优化和解决复杂系统问题,这款游戏能让你沉迷。
怎么玩: 这些游戏通常会给你一个模拟环境,你需要用游戏内置的编程语言或者逻辑系统来控制这个环境。比如 Factorio 里,你用“电线”和“逻辑元件”来创建复杂的自动化流程。TIS100 则需要你写非常底层的汇编代码。
为啥推荐: 这类游戏能让你理解编程在实际应用中的威力,尤其是如何通过代码来设计和控制复杂的系统。它们能极大地锻炼你的抽象思维和系统化解决问题的能力。

5. 网页开发/游戏开发模拟器:从零开始构建

是啥: 这些游戏或平台让你直接接触到更接近真实的编程环境,你可以用HTML、CSS、JavaScript来创建自己的网页或者游戏。
代表作品:
CodePen / JSFiddle: 这不是严格意义上的游戏,但它们是绝佳的在线编码沙箱。你可以在这里尝试写 HTML、CSS、JavaScript 代码,实时看到效果。很多人用它们来练习网页特效、小动画,甚至简单的交互式小工具。你可以关注社区里其他人的作品,然后“Fork”过来修改,非常方便。
Glitch / Replit: 这些平台则更进一步,提供了一个完整的开发环境。你可以在上面搭建网站,使用各种编程语言(Python, Node.js, React 等),甚至托管你的项目。它们更像是“在线编程工作室”,但玩起来就像是在造东西,非常有成就感。
怎么玩: 你会看到一个代码编辑器,以及一个预览窗口。你写下 HTML 结构,用 CSS 样式化,再用 JavaScript 添加交互。整个过程就像是在“堆积木”和“雕刻”,从无到有地创造出属于自己的东西。
为啥推荐: 如果你想体验真实的网页开发或者游戏开发流程,这类平台是最直接的途径。它们让你接触到真实的编程语言和工具,并且可以直接看到成果。

最后,给点小建议:

别怕“失败”: 编程游戏就是让你在错误中学习的。遇到 bug?太正常了!试着找出原因,然后一点点调整你的代码。
从小处着手: 不要一开始就想挑战最高难度的游戏。从 Scratch、Blockly Games 这种入门级的开始,建立起编程思维。
保持好奇心: 看到别人做的厉害的东西,别光羡慕,去看看他们是怎么做的,自己也试试。
享受过程: 最重要的还是玩得开心!只有你享受这个过程,才能持续学下去。

总之,现在的在线编程游戏种类繁多,总有一款能戳中你的兴趣点。找个你觉得顺眼的,开始你的编程探索之旅吧!相信我,你会发现一个新世界!

网友意见

user avatar

1.Robocode

让坦克们互相博弈的游戏,你可以看到它们飞奔,碾碎一切挡道的东西。机器人配有雷达与火炮,选手在躲避对手进攻的同时攻击对手,以此来较量得分的多少。这个游戏很有意思,曾经令我沉迷......

你可以用Java、Scala、C#等编程语言,编写人工智能程序,驱动机器人。

2.Code Combat

Code Combat是一款学习编程的角色扮演游戏。每一关都用任务的形式设立目标,用实时的反馈及时纠正代码的错误,用游戏的语言来呈现编程的用处。

比如玩装备剑你就学会了攻击的指令,玩装备魔法书你就学会了锁敌的技能。虽然都是编程的基础,但足够让玩家认识到游戏开发的地基是如何建造的。

3.LintCode

LintCode 是面向求职的编程刷题网站,收集了最常见、最高频的编程题目,还提供Google、蚂蚁金服的内推资格。比其他的一些网站,LintCode:

  • 有模拟面试专栏,精选 Facebook, Amazon, Google, Linkedin 等IT企业的面试题,真实还原面试流程,适合求职者
  • 编程挑战覆盖领域更多,包括算法、数据结构,人工智能,系统设计等。
  • 自己举办的编程比赛,很多算法爱好者会在这里PK,切磋技艺。

4.Screeps

Screeps是一个非常有趣的策略游戏。游戏中你控制的单位被称为“creeps”,它可以帮你获得资源、建立自己的领地,游戏中你的creeps会被其他玩家的creeps包围。推荐率非常高,支持javaScripts,java,python,c++等语言,推荐用JS,体验最好。

这个游戏要有编程基础,只有英文版。游戏部分免费,想继续玩的话需要付费。

5.Codewars

Codewars让你在在战斗中进行学习,支持JavaScript、Python、C#、Java、Python等语言。用游戏化的方法来联系编码和解决算法挑战。

最重要的是,在codewars,你可以看到别人提交的解决方案,这是你提升编程技术的好方法,很多平台做不到这一点。

6.Vim Adventures

Vim Adventures是一个游戏式教程,用于学习如何使用Vim,作为一个功能强大的文本编辑器,很多程序员喜欢使用。它有一个巨大的学习曲线,帮助你循序渐进地提升。虽然Vim本身并不是一种编程语言,但掌握Vim可以帮助你成为一个更有效的coder。

7.CodinGame

CodinGame很特别,和一些竞争性编程网站有所不同,它不是简单地通过生成一组输出来实现编程挑战,而是以玩游戏的方式通过在线编程完成相应挑战。有些游戏非常有趣,并且游戏界面和图形设计非常精美。

8.Elevator Saga

通过代码控制电梯上下,看起来简单,实际并不容易,你需要在规定的时间内完成任务,比如第一关是在60s内运送15人。

user avatar

《星际争霸2》

适用范围:Python入门及以上。

(用星际争霸入门Python也不错,10+行写一个农民采矿的Bot,30+行Rush一个简单难度的电脑,50+行虐虐困难模式的电脑,菜鸡玩家表示成就感爆棚...)

环境配置:星际争霸2、pysc2环境。

星际争霸2去暴雪官网下载安装,同时配置好你想用的地图即可。

PySC2是DeepMind开发的星际争霸Ⅱ学习环境。 它是封装星际争霸Ⅱ机器学习API,同时也提供Python 增强学习环境。下面给出pysc2的链接,详情见GitHub:

配置好环境就可以愉快的玩耍啦!你可以利用它写一些Bot,选择种族,指挥农民采矿,建造建筑,造军队,作为一个老牌的RTS游戏,你需要考虑农民与军队的数量问题,瓦斯与矿的配比问题,防御与骚扰的策略问题等等等吧。实际运行起来真的让人头秃....(本人菜鸡玩家

进阶版本的化可以写多个不同策略的Bot,用来应对对面的不同策略。去年星际争霸AI赛的第一名采用的还是这种策略,并用这种策略碾压众AI:SAIDA,胜率95.91%。

这里是两个入门的教学资料(英文生肉),大佬的话可以直接移步源码2333:

PS:由于版本问题英文生肉中有几个bug,学习的时候注意一下。(如果看的人多的话,二更会写一写这方面

当然,只虐电脑那种水平的Bot怎么能体现出我们的技术呢,当你不满足于虐电脑的时候,可以与其他人写的Bot同台竞技,这时候就真正体现出自己Bot的水平了,因为你会看见千奇百怪的骚套路....,很可能没考虑到一个小细节直接被单穿打爆:

当你发现你能虐翻大部分的Bot的时候,就可以用他去和真人对抗或者学习下一步,用强化学习去武装你的Bot变得更加强大(闪瞎眼的追猎

当然如果你的AI最终能秒杀所有的AI的话,那你就可以狂发paper走向人生巅峰了。

起峰了!

#7月27日更新(微信群不再拉人,详细情况参考10月31日修改):

#格式要求:知乎+(学生/python从业/大佬/...)

#新建了一个群聊,对星际争霸AI感兴趣的大佬们可以添加我微信拉你们进群。答主目前是视#频图像方向的一枚小弱鸡,也欢迎有图像AI兴趣的大佬加群,我们一起成长。


10月31日更新:

由于群里边的大佬们都不发言交流,目前群已经不再拉人了,望周知。想了想微信号还是留着吧,如果有兴趣多一个好友位可以添加~不过添加之前最好做一个简短的自我介绍呀~

感谢知乎给我上的一课(哭),加了一堆微商广告...从今天起加好友申请没有个人介绍的就不再通过了,谢谢。

更新一下星际争霸AI的最新进程,新闻说阿尔法星胜率已经很高了,去年的时候还跟一个zz一样...ai的成长能力真的恐怖。不过从新闻里边没有看到什么革新性质的训练方法,目前深度学习打星际给我的感觉像是多年前的剪枝方法下象棋。真正要达到ai下围棋那种程度,个人认为需要一个突破性的研究成果。

user avatar
       游戏 == 编程 >>> True     

电子游戏和编程充满联系。从雅达利兴盛的年代开始,游戏就已经开始影响一代又一代程序员。他们开发游戏,在游戏过程中获得快乐。随着机器学习的兴起,程序员们让人工智能学会游戏技巧,战胜人类。在 9102 年,很多计算机技术完全可以通过游戏轻松快乐地学习,本文将从三方面提供从游戏到编程的入门指南:

用玩游戏的方式学编程

VIM-Adventures:打游戏学 Vim

Vim 在众多程序员心中拥有举足轻重的地位。用 Vim 编程的人不管水平如何,总会给人「这是大佬」的第一印象。但是 Vim 的学习曲线十分陡峭,学习过程又枯燥乏味。《VIM-Adventures》是一款从零开始教你学习 Vim 的游戏。

在游戏里,你要不断收集钥匙开门前进。这期间,你不断地收集快捷键,使用快捷键,通过与 NPC 对话获得提示,打开宝箱,等到游戏通关,你会发现自己已经掌握了大量 Vim 技巧,并在游戏过程中练习了无数次。

注意,这款游戏后期是收费的


Learn Git Branching:通关 Git 指令

每个程序员都清楚 Git 的重要性。但 Git 的理念却不如它的那几条常用指令那样好记。Learn Git Branching 通过可视化和闯关的方式满足了各个阶段玩家的学习需求。每一关会先进行教程,告诉你基本的理念和指令效果,之后你需要自己输入指令实操,可视化区域则会给你实时反馈。这款游戏支持中文版


程序员升职记:重温计算机基础

Steam 上知名的《程序员升职记》(《HUMAN RESOURCE MACHINE》),画风有趣,剧情感人。在玩游戏的过程中,你能温习/学习计算机专业基本的标准输入流、标准输出流、寄存器、指针等概念,同时考验逻辑思维能力。随着剧情的层层推进,你还能经历城市骚乱,职场中形形色色的人,以及随着不断升职迎接着你的最终结局。

同时,制作该款游戏的公司 Tomorrow Corporation 还新推出了一款《七十亿人类》(《7 Billion Humans》),这款游戏继承了《程序员升职记》的风格,并新加入了一个能让许多工人们一起执行的全新编程语言。

如果你还没玩过这两款游戏,不妨在假期感受一下。


CodeCombat:快速上手一门脚本语言

CodeCombat(又名《极客战记》)可以帮助你通过打游戏快速上手一门语言,它支持 JavaScript、Python、CoffeeScript 等编程语言。通过控制英雄挑战难关,你可以在不知不觉间了解其语法。在社区中,你甚至可以创建自己的关卡,物品及指令,通过与他人竞技提升自己的编程水平。

除此之外,Screeps是一个为程序员制作的MMO战略沙盘游戏,通过编写 JavaScript 在游戏中对战;在 checkiO中使用 JavaScript 或 Python 可以不断解决挑战...... 更多类似的游戏可以在我们之前的文章《玩游戏还能学编程?》查看。

用强化学习让机器学会玩游戏

除了与编程相关的游戏之外,你还可以做一个 AI 打游戏。

这篇文章教你用强化学习自动玩 Dino Run(就是那个谷歌浏览器的断网小游戏),使用简单的 Python 程序,你可以让自己的机器轻松跑到 4000 分。


相应的 Github 仓库则使用强化学习玩起了贪食蛇。

图片左边是刚还是训练时的模型,右边是训练成熟的模型。

跟着教程练一遍,阅读相关书籍,或学习相关课程,你不仅能通过这个假期训练出自己的模型,打到所有人难以企及的高分,还能学会一门新兴领域的技术。

甚至,你还可以自己做一个游戏

自己做一个游戏

游戏开发的门槛正在逐渐降低,形式和语言也越来越多样化,使用 JavaScript 或 TypeScript 进行游戏开发不失为一种假期快速入门游戏开发的好方法。基于 JavaScript 或 TypeScript 有足够多的游戏引擎和图形库。

这篇文章教你使用大名鼎鼎的 WebGL 图形库 Three.js 制作一款打飞机游戏。

从场景,细节到操控,制作这款游戏可以很细致地帮助你熟悉 Three.js 的大部分常用功能。

TypeScript 是 JavaScript 的超集,也是近年来非常流行的语言,这篇文章教你使用 TypeScript 和游戏引擎 Phaser 3 开发一款简单的游戏,你可以通过它快速上手 TypeScript 和游戏开发。


欢迎各位知友关注力扣官方微信公众号:「LeetCode力扣」,更多关于程序员面试、技术干货的内容等你来啃!

类似的话题

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有