正文共: 1424字 3图
预计阅读时间: 4分钟
在电影《流浪地球》中,苏拉威西三号转向发动机在工程师李一一的调整下,利用“春节十二响”这一程序,将发动机离子流束喷射到距离地球6.5万公里的木星大气上方,随后刘培强通过引燃领航者空间站将火焰进一步引向木星大气,从而引燃木星。
JavaScript版
作为一个前端,信奉:
JavaScript是世界上最好的语言!
JavaScript是万能的!
JavaScript拯救世界!
于是我用JavaScript实现了这个程序,代码如下:
import hack_engine from 'hack_engine'; //破解行星发送机,获得控制权
//行星发送机初始化函数
function init() {
hack_engine.setEngineNumberMask(12);
hack_engine.setFuneralLevel(hack_engine.FUNERAL_FULL);
}
//主函数,在此启动12座发动机
async function main() {
init()
for(let i = 0; i < 12;i++){
await fire(i)
}
}
//发动机启动函数
function fire(i){
//每隔3秒钟启动一座
setTimeout(()=>{
hack_engine.engines[i].start(i);
},i*3000)
}
//开始按钮点击后,执行start事件函数
function start(){
main()
}
start()
实现了每隔3秒钟启动一座发动机,测试结果如下:
代码已经开源,放在Github上,仓库地址:
https://github.com/cooleye/spring12biubiu
欢迎有志拯救世界的你star,fork
如果你觉得又可以改进的地方,也可以提pr。
C语言版
国内还有网友使用c语言实现了“春节12响”,代码如下:
// File: twelve_biubiu.c
// Permission: CN-2082-2
// Author: Li.YiYi
// Dept: PE-362, UG
// Origin: TI-352132
//春节十二响biu biu biu!
#env "planet_engine"
int init() {
set_engine_number_mask(ENGINE_ALL);
set_funeral_level(FUNERAL_FULL);
//允许误差10秒以内
if (unix_time() < make_unix_time(2082, 1, 28, 23, 59, 60-10)) return ERR_ENGINE_ENV;
return engine_check_init(); // after compile and before real run
}
int main() {
set_curve(CURVE_NATURAL); //自然曲线耗费燃料最少
for (int i :range(0, 12, 1)) {
engine_start();
wait_engine(ENGINE_STATE_CHAGNE);
sleep(2000);
engin_stop();
wait_engine(ENGINE_STATE_CHAGNE);
sleep(4000); //这个时长在模拟器里听起来更像心跳
}
return 0;
}
int final() {
engine_ensure_shutdown();
}
如果你还有其他实现,也欢迎开一个issue,发出来,谁知道到时候行星发动机的语言环境是什么呢,索性都实现了吧。
来吧,地球需要你!