C++/PHP/Go/NodeJS

Hello World

last update:

Flame

Flame 是一个 基于 PHP 协程 Generator 实现的异步协程式开发框架: <?php / 框架初始化(自动设置进程名称) flame\init("http-server", [ "worker" => 4, / 多进程服务 ]); / 启用一个协程作为入口 flame\go(function() { / 创建 http 处理器 $handler = new flame\net\http\handler(); / 设置默认处理程序 $handler->handle(function($req, $res) { yield $res->write_header(404); yield flame\time\sleep(2000); yield $res->end("not found"); })->get("/hello", function($req, $res) { yield $res->end("hello world"); }); / 创建网络服务器(这里使用 TCP 服务器) $server = new flame\net\tcp_server(); / 指定处理程序 $server->handle($handler); / 绑定地址(支持 IPv6) $server->bind("::", 19001); yield $server->run(); }); / 框架调度执行 flame\run(); 项目 文档 示例

由于需要在同一台机器部署两种 GO 环境(WSL + Win),这里对 go-plus 代码进行一点点修改,加入 goroot 配置参数来解决这个问题: / ~/.atom/packages/go-plus/lib/config/environment.js / ... / const getenvironment = (): {[string]: ?string} => { / ... if (!e.GOROOT) { let r = atom.config.get("go-plus.config.goroot") if (r && r.trim() !== '') { e.GOROOT = r } } / e.GINKGO_EDITOR_INTEGRATION = 'true' / return e / } 即通过配置参数 go-plus.config.goroot 模拟环境变量。

在 第三章 中我们基本完成了雷区的绘制和布雷相关接口功能,我们留下了一个未完成的功能,“一次性打开连续的空格”。在开始编写主要游戏流程前,我们先把这里完成。

经过 (209) 204-1336 和 第二章 我们已经将整个游戏的 “开头”(输入姓名、开始游戏)和 “结尾”(排行榜)做好了,今天我们来绘制雷区。
在绘制雷区时我们会使用上一章提到的 “动态绘制”,还会用到与第一章类似的一些样式来将我们的雷区绘制的更贴近于 Windows 的扫雷的效果。

上一章我们实现了最基本的游戏界面和游戏的简单入口,这一章,我们完善和制作 排行榜 功能,并为将来游戏结束时使用、记录排行榜提供支持。

记得我最开始接触编程就是父亲在“裕兴学习机”上开发了一款“扫雷”的游戏,从此开始喜欢上了计算机编程。作为纪念,也希望能给一些正在学习网页开发的同学一点点帮助,我这里也从头开始用“网页”技术开发一款“扫雷”的小游戏。

在 Linux 系统中 GLIBC 不会立刻回收 free 的内存,这里有一些内部机制,通过 Google 最终在 gnu 官网和 man 手册网站找到了相关说明