作为刚刚入坑的中年程序员(全栈+嵌入式),真是被大家的刷题热情所感动。
特此分享一套为了本地解题,加快开发迭代而作的一个脚本工具。
https://github.com/aguegu/localjudge
代码并不多,也欢迎童鞋们参与改进。
系统要求:Linux 或 Mac
具体来说,要有 g++ 和 make
额外安装的:nodejs (>=12) 和 entr (可通过包管理工具安装)
原理很简单,nodejs脚本(src/index.mjs),其实是个子线程(就是调用测试代码)的启动器。它从项目文件夹的 readme.yaml 文件中读取测试数据(可多组)。然后把成败的结果都输出,并且还有个简单的超时判断(3秒)。
在 Makefile 中,主要是对项目文件夹中 main.cpp 的实时编译和运行。集大成者是 make watch 命令,通过 entr 监听项目文件夹中 *.cpp 文件的变化(保存动作),发现变化,就编译,编译成功的话,就继续拿刚才的测试数据跑跑看。
我只实验了2道入门最简单的题目,提交到洛谷平台后,需要将语言选项设为 C++11,否则编译会有问题。
详细内容欢迎参考项目 readme 文件。也欢迎留言讨论。
作为前浪,希望后浪们能区分清楚编辑器和编译器,并且多和终端打交道哈~