64 lines
1.1 KiB
TypeScript
64 lines
1.1 KiB
TypeScript
// Copyright (C) 2024 AstroGD® Lukas Weber
|
|
import generateRules, { getLength } from "./src/rules";
|
|
import fs from "fs";
|
|
import { v } from "./src/util";
|
|
import { visualizeValues } from "./src/visualizeValues";
|
|
|
|
const constValues: number[] = [
|
|
v(2, 1, 8),
|
|
v(4, 1, 9),
|
|
v(6, 1, 7),
|
|
v(7, 1, 3),
|
|
v(2, 2, 3),
|
|
v(3, 2, 9),
|
|
v(5, 2, 6),
|
|
v(7, 2, 2),
|
|
v(8, 2, 8),
|
|
v(2, 3, 5),
|
|
v(3, 3, 7),
|
|
v(8, 3, 9),
|
|
v(1, 4, 5),
|
|
v(2, 4, 1),
|
|
v(3, 4, 6),
|
|
v(5, 4, 2),
|
|
v(9, 4, 8),
|
|
v(2, 5, 4),
|
|
v(4, 5, 7),
|
|
v(5, 5, 8),
|
|
v(6, 5, 1),
|
|
v(8, 5, 6),
|
|
v(9, 5, 2),
|
|
v(1, 6, 2),
|
|
v(2, 6, 7),
|
|
v(3, 6, 8),
|
|
v(5, 6, 4),
|
|
v(6, 6, 6),
|
|
v(7, 6, 9),
|
|
v(2, 7, 9),
|
|
v(3, 7, 4),
|
|
v(6, 7, 3),
|
|
v(7, 7, 6),
|
|
v(1, 8, 3),
|
|
v(3, 8, 5),
|
|
v(4, 8, 6),
|
|
v(5, 8, 9),
|
|
v(8, 8, 7),
|
|
v(9, 8, 1),
|
|
v(9, 9, 9),
|
|
];
|
|
|
|
console.log("Input values:");
|
|
visualizeValues(constValues);
|
|
|
|
console.log("\nRule generation:");
|
|
const rules = generateRules(constValues);
|
|
|
|
const output = fs.createWriteStream("output.cnf");
|
|
output.write(`p cnf ${v(9, 9, 9)} ${getLength(constValues)}\n`);
|
|
|
|
for (const rule of rules) {
|
|
output.write(rule + "\n");
|
|
}
|
|
|
|
output.end();
|