Files

2 lines
889 B
JavaScript

import fs from 'node:fs';import {solve} from '../rules.mjs';import {measure} from './score.mjs';const pack=JSON.parse(fs.readFileSync('levels.json')),notes=JSON.parse(fs.readFileSync('design.json')),plan=JSON.parse(fs.readFileSync('plan.json'));let removed=0;for(const l of pack.levels){for(const c of l.cells.filter(c=>c.clue!==undefined&&c.clue!==1)){const number=c.clue;delete c.clue;let count=2;try{count=solve(l,{limit:2,nodeLimit:1200000}).length;}catch{}if(count!==1)c.clue=number;else removed++;}const n=notes.find(n=>n.level.id===l.id);n.level=l;n.objective=measure(l,n.author);l.objectiveScore=n.objective.score;plan.levels[l.order-1].measuredScore=l.objectiveScore;}for(const [name,data]of [['levels.json',pack],['design.json',notes],['plan.json',plan]])fs.writeFileSync(name,JSON.stringify(data,null,2));console.log('Pruned',removed,'redundant numbers, refreshed all scores');