JavaScriptban春节12响代码

正文共: 1424字 3图

预计阅读时间: 4分钟

在电影《流浪地球》中,苏拉威西三号转向发动机在工程师李一一的调整下,利用“春节十二响”这一程序,将发动机离子流束喷射到距离地球6.5万公里的木星大气上方,随后刘培强通过引燃领航者空间站将火焰进一步引向木星大气,从而引燃木星。

image

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秒钟启动一座发动机,测试结果如下:

image

代码已经开源,放在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,发出来,谁知道到时候行星发动机的语言环境是什么呢,索性都实现了吧。

来吧,地球需要你!


推荐阅读更多精彩内容