边写 Javascript 代码边玩游戏 – WarriorJS

5,383 阅读4分钟

在 github 上看到这个有趣的项目 – WarriorJS ,项目的内容写着 – 令人兴奋的程序设计和人工智慧游戏,Ok 我坦白我是看到人工智慧被这个专案所吸引,但是玩了两个关卡,还是不知道这个游戏跟人工智慧有什么关系,不过这个游戏的最大亮点反而是 – 透过写 Javascript 来破游戏所设下的关卡

这个游戏没有酷炫的声光效果,也没有图形介面,只有文字介面( 想起了以前很热门的 MUD ) ,可以一边在 VS Code 编辑器上编码,然后在 VS Code 内建的 console 中执行程序看看你写的 Javascript 代码是不是可以顺利破游戏给你的任务 ,听起来很有趣,因为都是文字介面,刚开始玩也有点摸不着头绪,以下简单介绍这个游戏要如何启动,和如何玩,希望这个游戏会帮助你回想一下当初开始学编程的乐趣

游戏背景介绍

在 WarriorJS 中,你穿着勇士般的盔甲,爬上一座高塔,到达顶端的 JavaScript 之剑。传说持剑者因为使用 JavaScript 语言变得豁然开朗,但是要注意的是: 这个过程并不容易。在每层楼上,你需要编写 JavaScript 来指导战士与敌人战斗,拯救俘虏,活着走上楼梯。

无论你是程序设计新手还是 JavaScript 大师,WarriorJS 都会让你的技能受到考验。 你敢接受挑战吗?

( 以上游戏说明翻译自 github 开源项目中的游戏介绍 )

开始安装游戏

1. 使用 npm 安装

npm install –global @warriorjs/cli

2. 建立你自己的战士

到终端机执行 warriorjs ,程式会提醒你目前没有 warriorjs 这个目录,是否要建立,选 Yes ,接下来帮战士取一个名称,选一个要挑战的塔等级 ( 一开始似乎只有 beginner 可以选 )

1__warriorjs__node_

建立好后,warriorjs 程式会帮你在 warriorjs 这个目录建立一个战士名称-begineer目录,使用 VS Code 来打开这个目录,先看看目录中的 README.md ,这就是游戏给你的第一道关卡任务说明,是使用 markdown 语法写的

第一关还蛮简单的只要走到楼梯就算过关了,里面的 @ 就是战士你, > 代表楼梯,还有你的生命值 HP = 20 ,还有战士的能力,第一关只有走路 warrior.walk()

readmewarriorjs

接下来就要开始写程式来完成第一个关卡的任务,打开 Player.js ,然后在 playTurn 这个 function 中输入 warrior.walk() ,写好后要记得储存

walk

打开 VS Code 的终端机 ,然后输入 warriorjs 指令,你就会看到游戏会根据你向战士编写的 javascript 代码去执行,这个任务相当简单,就是一直走到楼梯就完成了,游戏完成后会问你是否要挑战下一个关卡,选 Yes 后,warriorjs 会更新 README.md 给你下一个任务说明,好像 mission impossible 

run

打开看 README.md ,OK 第二个任务来了,你会发现有新的地图,战士的能力除了走路也多了新的技能 ( attack() ) ,还多了感知能力 ( feel() ,回传前面空间状态) ,你的任务还是走到楼梯,但是中间有一个障碍 Sludge ,过这个障碍会让你损失 12 个生命值,attack() 也会消耗 5 个生命值

任务说明有给提示,利用 feel().isEmpty() 判断你的前面是否有障碍,如果有就使用 attack(),如果没有就继续走

secondtower

打开 Play.js 开始设计你的战士要如何过关,你可以先不用改代码,看看战士是怎么死掉的 ,但是为了不花费太多篇幅,先破个梗看看这关要如何过,以下是我的代码

class Player {    
   playTurn(warrior) {            
    if(warrior.feel().isEmpty()){                        
       warrior.walk();            
    } else {                        
       warrior.attack();            
    }     
   }
}
如果前面是空无一物就往前走,如果遇到障碍,就执行 attach() ,写好控制程式后储存 Player.js 然后到终端机执行 warriorjs 程式,你会看到游戏是否按照你写的 javascript 程序逻辑去执行,这关也很简单,又顺利过关了,如果要继续挑战,按下 y ,前面关卡很简单,后面会越来越困难

3tower

这个游戏会让你上瘾吗?恭喜你,这个游戏也会让你喜欢上编程

欢迎逛逛 Soft & Share 网站