软件工程师通常会高效地发现可以自动化,可以通过算法解决的零件。

是否有任何游戏可以让玩家通过成为程序员来利用自己的优势?

,编写重复性任务的脚本或协调复杂任务,使用算法寻找策略等?

评论

这有点开玩笑,但从技术上讲,所有MMORPG都适用(示例)。

#1 楼

我能想到的最不值得信赖的东西就是与此描述相符的东西。这是一款冒险游戏,您必须修改代码以解决关卡并逃脱。

但是,我认为这比您想像的要真实得多。我可以想象动作冒险游戏中的谜题解决方案更具算法性,但是我什么都不知道。

#2 楼

我不确定您在Linux上做了多少工作,但是Vim Adventures可能属于您的资格范围。对于任何在Linux上进行基于文本的开发的人(无论如何,还是VIM / VI)来说,都是一次很棒的复习/新体验。

评论


作为Linux和Vi用户,这听起来像是一种练习的好方法。谢谢!

–石油
15年4月27日在18:19

#3 楼

Colobot是一款很棒的游戏,您需要对机器人进行编程以实现目标。



很旧。很棒的乐趣。

感兴趣的链接:http://colobot.info/colobot-gold-edition/https://github.com/colobot



Saga电梯-电梯编程游戏http://play.elevatorsaga.com/



#4 楼

如果您想要更多的传统游戏,可以选择对解决方案进行编程,则可以尝试使用其中装有Computercraft Mod的任何大型Minecraft modpack。我会推荐FTB Monster,但实际上任何具有Computercraft的包(或您自己的模组)都可以。我自己创建了一些基本的到中等复杂的自动化产品。)

编辑:我最近遇到了另一个类似的Mod,称为OpenComputers。设置起来比较困难(在游戏中,mod的安装与Computercraft相同),但它的功能使其在Computercraft中脱颖而出。如果您愿意,可以做我正在做的事情,并同时使用两个mod(以及200多个其他☺)。

#5 楼

CheckiO是一款纯粹用于解决编程难题的游戏(使用Python)。

我不确定这是否符合您的描述,因为编程在游戏中并没有给您带来很大的优势,这是绝对必要的。

该游戏为您呈现不同的任务,其中一些任务是用户创建的,需要您编写满足给定单元测试集的代码。一旦您编写了通过这些测试的任何类型的代码,任务便被视为已解决,您可以发布解决方案以供其他玩家审查。

任务开始容易,但难度迅速增加。特别是艰苦的任务还需要一些数学,几何和计算机图形学知识。

#6 楼

Screeps是“世界上第一个面向程序员的MMO策略开放世界游戏”。

您必须编写JavaScript才能玩它。

您控制可以执行各种动作的小兵,其目标是创建自己的帝国并征服其他玩家的领土。根据您对小兵的编程方式,它们可以在您离线时对事件做出反应。

MMO(具有单个持久性世界)将于下周以“早期预览”,决斗模式(1 vs 1)正在开发中,并且暂时禁用了竞技场模式,因此当前您只能播放“教程”,“生存”模式(针对NPC)和“自定义模式”(用于测试)。 >
有关游戏性的问题,您可以前往Arqade,有关游戏的编程的问题,您可以前往Stack Overflow。

#7 楼

我喜欢玩人力资源机器。玩家在“工厂”中扮演一个人的角色,并且您提供了有关如何处理传送带上的输入以在输出带上放置正确值的说明。它以一种益智游戏的形式呈现,但是您实际上是学习以汇编语言进行编程的,从基本循环开始,到实现诸如对项目进行排序和分解数量之类的标准算法为止。使用较少的指令(较短的程序或较短的执行步骤)会带来额外的挑战。

有点奇怪,因为它可能太难了(至少在以后的级别上) )(如果尚未接触过编程,则可能太容易了)。例如,它在学校已被用作教授一些编程概念的方法,并且我可以肯定地将其与指南一起使用,或者可以将其实际“看”到排序算法的幕后。例如,

#8 楼

钓鱼仙人掌创造了这个比利时游戏:Algo Bot。

这是一款严肃的游戏,它基于算法(因此得名)和编程。看起来很有前途! :)

蒸汽页面:https://store.steampowered.com/app/286300/Algo_Bot/

#9 楼

CodinGame旨在编写几乎所有您能想到的编程语言的小型AI脚本,以解决类似游戏的环境中的某些情况。

评论


相当令人印象深刻的技术。我假设它必须在您的代码服务器端进行调试,将其编译为某种中间语言(或者可能是交叉编译为JS),然后将其发送回去。我似乎记得当我第一次听说此问题时,看着Chrome检查器试图解决这个问题:-)

– Rikki
2015年6月11日,0:44

#10 楼



Robocode是一款非常简单的基于Java的机器人对抗游戏。您可以通过使用Java实现类来编写坦克的大脑代码。它是基于事件的,因此您将覆盖onHitWallonScannedRobot之类的方法。然后,您将一堆机器人扔进战场并进行1000模拟,以查看哪个机器人更好。

这很有趣,而且在难度方面具有很大的可扩展性。有非常复杂的机器人和非常简单的机器人。您可能会浪费大量时间来研究不同的技术和策略。这是本教程中最简单的机器人:



import robocode.*;

public class MyFirstRobot extends Robot {
    public void run() {
        while (true) {
            ahead(100);
            turnGunRight(360);
            back(100);
            turnGunRight(360);
        }
    }

    public void onScannedRobot(ScannedRobotEvent e) {
        fire(1);
    }
}




#11 楼

您可能会对使用类似汇编语言的TIS-100和将嵌入式电路和类似于汇编编程的深圳-IO感兴趣。

两者都是益智游戏:您只能得到有限的棋盘/ LOC限制,一组输入以及有关预期输出的说明。虽然TIS-100更接近您的要求,但我更喜欢Shenzhen-IO,因为考虑到您代码的复杂性来为您的解决方案评分。

两款游戏都没有“真正的解决方案”,那么您的解决方案可能会更笨拙,但是更快或更慢,但易于理解......

TIS-100:



Shenzhen-IO:



#12 楼

Factorio符合要求。


您将在挖掘资源,研究技术,建立基础设施,自动化生产并与敌人作战。用您的想象力来设计工厂,将简单的元素组合成精巧的结构,运用管理技能使其运转,并保护其免受那些不太喜欢您的生物的伤害。




#13 楼

您可以看看我一直以来最喜欢的游戏Zeus Carnage Heart系列。

这使我开始编程。

这是一种机器人战争游戏,您购买硬件和程序软件即可构建战斗机器人。