Files
shanhe-puzzle/scripts/check-pressure.cjs
T

2 lines
900 B
JavaScript

const vm=require('vm'),fs=require('fs');const {Game}=require(process.cwd()+'/src/game.js');let box={window:{}};vm.runInNewContext(fs.readFileSync('src/maps.js','utf8'),box);let level=box.window.MAP_DATA.levels[0],results=[];for(let seed=1;seed<=5;seed++){let n=seed;let rng=()=>{n=(n*1664525+1013904223)>>>0;return n/4294967296};let g=new Game(level,320,435,3,()=>{},rng);let initial=g.scale;g.start();while(g.status==='playing'&&g.clock<110000)g.tick(1000/30);results.push({seed,scale:initial,dropped:g.dropped,status:g.status,seconds:Math.round(g.clock/1000),max:Math.max(...g.groups.map(x=>x.ids.length))});g.destroy();}fs.writeFileSync('artifacts/pressure-report.json',JSON.stringify({viewport:{width:320,height:435},speed:'山河起飞',input:'无操作',samples:results,note:'固定随机种子的本地物理模拟,不代表真机性能或用户通关难度'},null,2));console.log(results);