《程序员升职记》是一款趣味十足的休闲益智游戏。游戏里,玩家化身年轻程序员,通过持续攻克编程难题、挑战各类谜题,逐步精进自身技能并晋升职位。游戏包含多个关卡,每个关卡都配备了不同的编程任务与逻辑谜题,玩家需灵活运用编程知识和问题解决能力来完成任务。在闯关过程中,玩家还会遭遇各种挑战与障碍,需通过优化代码、调试程序等方式逐一克服。借助这些挑战,玩家不仅能提升编程技能,还能亲身体验成为一名优秀程序员所需的逻辑思维与问题解决能力。
1、借助拖放指令来引导人类办公人员处理老板安排的任务。
解开一道难题,就能晋升到公司大楼的下一层,接着去解决另一个问题。
3、玩家需要通过安排指令、启动程序去完成任务。
1、创造了许多真实而令人震惊的场景。
2、在开放结局中,不同的选项可能导致不同的结局。
3、多种有趣的模式正在等待您发现和挑战。
1、更多的谜题,更多的人类,更大的大脑肌肉,超过60多个水平的编程难题!
2、这是一种全新的编程语言!它在人力资源机器的基础上进行了升级,原本仅由单个工人执行,现在全球70亿人都能使用这种全新语言,并且支持大量工人同时并行执行任务。
3、你会掌握所有需要了解的知识。就算是看似无用的技能,也能在工作中派上用场!
第一关:收发室
将命令拖到此区域(右侧区域)来写程序。
你的程序需要指示工人把INBOX里的每样物品都取出来,再放到OUTBOX中。
解题方法:同时满足挑战体积和速度
挑战体积:采用不超过6个命令(6)……【√】符合标准
挑战速度:平均完成步数不超过6步(6)……【√】符合标准
第二关:繁忙的收发室
把INBOX里的所有物品都取出来,再放到OUTBOX中。
你现在可以使用一个新命令啦!你能够通过拖动JUMP的指针,让程序在运行时跳转到不同的位置去执行命令。
有了这项功能,你可以仅用3个命令完成这项任务。
解题方法1:满足挑战体积
挑战体积:运用不超过3个命令(3)……【√】符合标准
挑战速度:平均以不超过25步完成(30)
解题方法2:满足挑战速度
挑战体积:使用不超过3个命令(5)
挑战速度:平均完成步数不超过25步(25)……【√】符合标准
第三关:复印楼层
暂时先别管INBOX,直接把BUG这三个字母发送到OUTBOX。
设备管理部的员工在地毯上放置了一些物品。如果你能想办法将它们拾起来就好了。
解题方法:同时满足挑战体积和速度
挑战体积:采用不超过6个命令(6)……【√】符合标准
挑战速度:平均完成步数不超过6步(6)……【√】符合标准
第四关:解扰码器
从收件箱里取出两件物品,再把它们按相反的顺序丢进发件箱。一直重复这个操作,直到收件箱里没有东西为止。
现在你获得了使用一项新命令的权限!你能够随时通过COPYTO(复制到)指令,将内容放置到地毯的任意位置。后续会有专人前来进行清理工作。
解题方法:同时满足挑战体积和速度
挑战体积:运用不超过7个命令(7)……【√】符合标准
挑战速度:平均完成步数不超过21步(21)……【√】符合标准
第五关:咖啡时间(略)
第六关:多雨之夏
从INBOX里取出两个数,将它们相加,再把得到的和放入OUTBOX中。
你现在可以使用一个新命令了!不管你手里拿着什么东西,ADD命令都会把地板上指定地砖里的内容添加到你手上。
解题方法:同时满足挑战体积和速度
挑战体积:采用不超过6个命令(6)……【√】符合标准
挑战速度:平均完成步数不超过24步(24)……【√】符合标准
第七关:零之杀手
把所有不是零的东西发到OUTBOX。
你现在可以使用一个新命令了!只有持有零时它才会跳转,不然的话就会接着执行下一行。
解题方法:同时满足挑战体积和速度
挑战体积:采用不超过4个命令(4)……【√】符合标准
挑战速度:平均完成步数不超过23步(23)……【√】符合标准
第八关:三倍扩大室
针对INBOX里的每一项内容,把它们都扩大到原来的三倍,再把处理后的结果发送到OUTBOX。
自我提升小建议:我们做这些有什么意义呢?还是把这类高层决策交给经理部门去处理吧。
解题方法:同时满足挑战体积和速度
挑战体积:采用不超过6个命令(6)……【√】符合标准
挑战速度:平均完成步数不超过24步(24)……【√】符合标准
第九关:保护零行动
只把零送到OUTBOX。
解题方法1:满足挑战体积
挑战体积:采用不超过5个命令(5)……【√】符合标准
挑战速度:平均以不超过25步完成(28)
解题方法2:满足挑战速度
挑战体积:使用不超过5个命令(7)
挑战速度:平均步数不超过25步(实际23步)……【√】符合标准
第十关:八倍扩大器套件
对于收件箱(INBOX)里的每一个数字,都要先把它乘以8,之后再把得到的结果放到发件箱(OUTBOX)中。
用一堆ADD指令操作起来确实简单,可这样太不划算啦!你能不能只靠3个ADD指令就完成任务呢?经理部门正盯着你呢。
解题方法:同时满足挑战体积和速度
挑战体积:采用不超过9个命令(9)……【√】符合标准
挑战速度:平均完成步数不超过36步(36)……【√】符合标准
一、程序结束判定
不知道大家有没有注意到,这个程序的编写是没有终止命令的,而绝大多数任务都依赖循环来完成,那究竟怎样才算程序结束呢?通过仔细观察,不难发现,当代码全部执行完毕时,程序就会结束,这符合我们的直觉对吧。但那些无法直接执行到末尾的程序呢?我认为是通过触发inbox来实现终止的——当使用inbox指令时,如果输入队列是空的,程序就会跳出。不过这里有个问题:如果inbox的位置离循环入口太远,那么在输出最终结果后,还得额外运行好几个动作才能到达inbox(此时输入为空),这样会增加总步数。所以如果没有特殊必要,这部分是可以优化的。
二、程序结果的审核
程序中最常见的错误通常是意外的空值操作或类型不匹配问题,像空的outbox、对空值进行加减运算、读取空单元格、字母与数字之间做加减等情况都属于这类。除此之外,输出值不符合要求也是常见错误,这一点需要进一步说明。
1、你常常会发现,只要程序输出了错误结果,就会弹出“程序期待输出某值,而你输出某值”的报错提示。由此我们推测,这些预期数值肯定是提前计算好的,就等着核对你给出的错误值——这种猜想在大多数情况下都是成立的。
2、不过还有一种相对少见的错误情形:当你按要求完成输出后,程序却提示“尽管输出正确,但存在反例”。这通常是因为你对题干的理解不够全面,程序中存在未考虑到的特例,或是为了应付当前输入而采取了投机取巧的方式,仅针对特定输入生成对应输出。推测系统在测试完给定序列后,会在后台用所有备用序列再次测试,若程序无法通过就会报错,并在后续测试中抛出该序列。此外,系统设有总步数评分机制,开发者显然希望同一程序在所有备用序列下的跑分一致,生成这些序列时可能用到了相关理论或专业工具进行评估,但难免会存在一些差异或漏洞,或许可以利用这些差异进行优化。
3、还有一种更少见的错误情况,比如像 loop{ … ; outbox; … ; inbox; … } 这样的写法。会出现“你输出了所有需要的值,但输出的结果数量过多”的问题(例如输出了1,2,3,4, 1,3,5,7, 1)。之前说过程序结束是以inbox(null)作为标志的,所以在inbox语句前面要谨慎使用outbox语句。
在这款游戏中,玩家不仅能获得更丰富的休闲体验,还能锻炼代码编写能力。游戏难度从简单逐步过渡到困难,整体体验相当出色,情节设计也十分真实,是一款很不错的作品。