前言
“编程好难……” “代码全是英文,看得我头大……” “学了三天就放弃了,太枯燥了!”
你是不是也这样想过?其实,编程可以像打游戏一样上瘾!
最近,我把 CodeCombat 这款“编程闯关游戏”部署在了家里的 极空间 NAS 上,结果——孩子抢着学 Python,我自己也玩到停不下来!
在这里,你不是在背语法,而是:
- 扮演一名魔法师,用代码施法攻击敌人
 - 写 moveRight() 让角色前进,用 attack() 击败小怪
 - 每一关都是一道编程题,越玩逻辑越清晰
 
更棒的是,部署一次,全家可用!通过局域网就能访问,数据存在本地,不联网也能学。
谁说学习不能很快乐?当代码变成技能,Bug 变成彩蛋,你会发现:原来编程,也可以是一场冒险。
接下来,手把手教你如何在极空间上一键部署 CodeCombat,开启边玩边学的编程之旅!

1.在极空间中部署CodeCombat
在极空间中打开docker,在镜像仓库中搜索ope-codecombat,下载同名镜像:


打开“个人空间”,进入docker文件,新建“codecombat”文件夹,然后在“codecombat”文件夹下再创建mongo,data两个子文件夹:

也可以使用docker命令一键部署:
docker run -itd --restart=always \
 -p 32700:3000 \
 -v /root/codecombat/data:/home/coco/codecombat/data \
 -v /root/codecombat/mongo:/home/coco/codecombat/mongo \
 --name codecombat \
 operepo/ope-codecombat

回到docker中下好的本地镜像,运行ope-codecombat这个镜像,储存位置填写新建的data和mong文件夹的原始路径:

可以修改端口为未使用过的,点击应用:

进入下载链接:https://pan.xunlei.com/s/VMYzHliP-dHLCamAwX_LypPjA1 提取码:yfz8
下载CodeCombat资料dump.tar.gz,下载后的文件复制到之前创建的data文件夹中:

确保ssh开启:
- 开启【SSH 服务】
 - 使用终端(Windows PowerShell / Mac Terminal)登录:
 
ssh root@IP
没有ssh的小伙伴可以参考这篇文章:
连接成功:极空间别再吃灰了!开启SSH,秒变全能服务器! – cpolar 极点云官网

先输入sudo命令获取权限
sudo -i
完成后再输入命令进入容器
docker exec -it ope-codecombat /bin/bash
解压刚刚复制进去的压缩文件,输入命令:
cd /home/coco/codecombat/data/
tar -zxvf dump.tar.gz

显示成功后,开启数据库服务,输入命令
cd /home/coco/codecombat
./bin/coco-mongodb

开启web服务,输入命令:
cd /home/coco
sh start.sh
完毕后如不需要解锁所有关卡,则可以关闭窗口,如要解锁关卡则先不关闭窗口,后面还需要输入命令:

部署完成后,在浏览器中输入 http://极空间IP:32770 就能看到CodeCombat的界面:

2.简单使用CodeCombat
进入网页后就可以注册信息啦:

注册后,点击尝试玩游戏吧!

当前只解锁了5关,如果全部解锁,进入powershell窗口,修改数据库数据输入命令:
mongo
use coco
db.users.update({'name':'你游戏注册时设置的用户名'},{$set:{'earned.gems':9999999, permissions:["godmode","admin"]}},true,false);
然后可以看到所有地图均解锁了,且左下角的蓝宝石直接加到最满。
接下来,我们来开始边学边玩吧。


可以选择我们想要学习的语言:

游戏开始前,会教你输入代码来进行操作:

例如输入,往下走“hero.moveDown()”:

输入完整代码闯关成功:

随着闯关数增加,代码难度也会提升哦~

是不是学习也变得不那么枯燥了!
你已经在极空间上成功部署了 CodeCombat,全家都能在局域网内通过浏览器打开,边打怪边学 Python、JavaScript,学习变得像游戏一样上瘾!
但问题来了:
- 孩子想在奶奶家继续闯关?
 - 你想在公司调试教学进度?
 - 外出时临时想练两关?
 
这时候,cpolar 就派上大用场了!通过它孩子在任何有网络的地方都能继续闯关学习,跟我一起来安装吧~
3.安装cpolar实现随时随地发文
cpolar 可以将你本地电脑中的服务(如 SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。
❤️以下是安装cpolar步骤:
使用一键脚本安装命令:
sudo curl https://get.cpolar.sh | sh

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)
sudo systemctl status cpolar

Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:
打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。

4.配置公网地址
登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:
- 隧道名称:可自定义,本例使用了:combat,注意不要与已有的隧道名称重复
 - 协议:http
 - 本地地址:32770
 - 域名类型:随机域名
 - 地区:选择China Top
 

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。

访问成功:

5.保留固定公网地址
使用cpolar为其配置二级子域名,该地址为固定地址,不会随机变化。

点击左侧的预留,选择保留二级子域名,地区选择china Top,然后设置一个二级子域名名称,我使用的是combat,大家可以自定义。填写备注信息,点击保留。

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑。

修改隧道信息,将保留成功的二级子域名配置到隧道中
- 域名类型:选择二级子域名
 - Sub Domain:填写保留成功的二级子域名
 - 地区: China Top
 
点击更新

最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问的页面,这样一个永久不会变化的二级子域名公网网址即设置好了。

这样我们不管在哪都可以随时学习随时玩了~
总结
谁说学编程很枯燥?当你用代码“施法”,用逻辑“闯关”,你会发现:编程,也可以很快乐。
孩子不再沉迷手游,而是主动写代码打怪升级;我自己也从“编程小白”变成了能看懂函数的“魔法师”!
更棒的是,通过 cpolar 内网穿透,我还能在外网安全访问这个私有游戏,出差、旅行、奶奶家……随时随地继续闯关!
感谢您对本篇文章的喜爱,有任何问题欢迎留言交流。cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站



