[O] Dynamic rows

This commit is contained in:
2024-12-17 00:23:04 -05:00
parent a08fc54867
commit b01a4446ef
2 changed files with 6 additions and 5 deletions
+4 -3
View File
@@ -9,12 +9,13 @@
const params = new URLSearchParams(location.search) const params = new URLSearchParams(location.search)
// Can pass in puzzle data from props // Can pass in puzzle data from props
interface Props { puzzleData?: { id: string, numbers: i8s, nMask: i8s, hColors: i8s, vColors: i8s, colors: string[] } } interface Props { puzzleData?: { id: string, rows: number, cols: number,
numbers: i8s, nMask: i8s, hColors: i8s, vColors: i8s, colors: string[] } }
export let { puzzleData }: Props = {} export let { puzzleData }: Props = {}
const pid = puzzleData?.id ?? 'slitherlink' const pid = puzzleData?.id ?? 'slitherlink'
// Main variables // Main variables
const [rows, cols] = [40, 40] const [rows, cols] = [+(puzzleData?.rows ?? params.get('size') ?? 40), +(puzzleData?.cols ?? params.get('size') ?? 40)]
const [eRows, eCols] = [rows + 1, cols + 1] const [eRows, eCols] = [rows + 1, cols + 1]
let [numbers, nMask, numberState] = [zero8(rows * cols), zero8(rows * cols).fill(1), zero8(rows * cols)] let [numbers, nMask, numberState] = [zero8(rows * cols), zero8(rows * cols).fill(1), zero8(rows * cols)]
let [hStates, vStates] = [zero8(eRows * eCols), zero8(eRows * eCols)] let [hStates, vStates] = [zero8(eRows * eCols), zero8(eRows * eCols)]
@@ -45,7 +46,7 @@
setInterval(() => !complete && (elapsed = Date.now() - startTime), 100) setInterval(() => !complete && (elapsed = Date.now() - startTime), 100)
// Checkpoints // Checkpoints
const ckpt = () => ({hStates, vStates, numbers, nMask, hColors, vColors, colors}) const ckpt = () => ({rows, cols, hStates, vStates, numbers, nMask, hColors, vColors, colors})
const loadPt = () => JsonTy.parse(localStorage.getItem(`${pid}-checkpoints`) ?? "[]") const loadPt = () => JsonTy.parse(localStorage.getItem(`${pid}-checkpoints`) ?? "[]")
let ckpts: Checkpoint[] = loadPt() let ckpts: Checkpoint[] = loadPt()
const savePt = (fn: () => any) => () => { fn() const savePt = (fn: () => any) => () => { fn()
+2 -2
View File
@@ -1,6 +1,6 @@
import { eStates } from "./utils"; import { eStates } from "./utils";
const solverUrl = "http://10.0.0.3:8000/" const solverUrl = "https://slither0.hydev.org/"
/* /*
# EXAMPLE DATA FORMAT FOR SOLVER # EXAMPLE DATA FORMAT FOR SOLVER
@@ -63,7 +63,7 @@ export async function solve(w: number, h: number, numbers: Int8Array, mask: Int8
// Send data to solver // Send data to solver
const time = performance.now() const time = performance.now()
try { try {
let response = await fetch(solverUrl, { method: "post", body: req, signal: AbortSignal.timeout(60000) }) let response = await fetch(solverUrl + 'solve', { method: "post", body: req, signal: AbortSignal.timeout(60000) })
if (!response.ok) { if (!response.ok) {
console.error("Solver failed to respond") console.error("Solver failed to respond")
return {horiStates, vertStates, solvable: false} return {horiStates, vertStates, solvable: false}