From fee75ff8a7c72cdfdac8a7840183a501c91b44d6 Mon Sep 17 00:00:00 2001 From: Manuel Friedli Date: Sat, 15 Apr 2023 19:37:50 +0200 Subject: [PATCH] Fetching remote data from the REST service works, basic drawing too. That's a first prototype. --- src/App.js | 23 +- src/Cell.js | 7 +- src/InputForm.js | 111 + src/Maze.js | 9 +- src/Row.js | 5 +- src/ValidatingInputNumberField.js | 49 + src/styles.css | 3 + src/testdata.js | 3679 ----------------------------- 8 files changed, 190 insertions(+), 3696 deletions(-) create mode 100644 src/InputForm.js create mode 100644 src/ValidatingInputNumberField.js delete mode 100644 src/testdata.js diff --git a/src/App.js b/src/App.js index fde5c47..c7b5cf3 100644 --- a/src/App.js +++ b/src/App.js @@ -1,16 +1,21 @@ -import React from 'react'; +import React, {useState} from 'react'; import Maze from "./Maze"; -import {maze1, maze2, maze3} from "./testdata"; +import InputForm from "./InputForm"; -export default function Square() { - const mazes = [{grid: [[]]}, maze1, maze2, maze3]; - const renderedMazes = mazes.map(maze => (
-

The Maze ({maze.width}x{maze.height}).

- -
)) +export default function App() { + const [maze, setMaze] = useState({}); + let title; + if (!!maze.grid) { + title =

The Maze ({maze.width}x{maze.height})

; + } else { + title = ; + } return (
- {renderedMazes} + + {title} +
); } diff --git a/src/Cell.js b/src/Cell.js index 89a4d4d..32ff9c4 100644 --- a/src/Cell.js +++ b/src/Cell.js @@ -1,15 +1,14 @@ import React from 'react'; -export default function Cell({spec, rowIndex, cellIndex}) { +export default function Cell({spec, rowIndex, cellIndex, showSolution}) { let classes = "cell r" + rowIndex + " c" + cellIndex; if (spec.top) classes += " top"; if (spec.right) classes += " right"; if (spec.bottom) classes += " bottom"; if (spec.left) classes += " left"; - if (spec.solution) classes += " solution"; + if (spec.solution && showSolution) classes += " solution"; if (spec.user) classes += " user"; return ( -
-
+
); } diff --git a/src/InputForm.js b/src/InputForm.js new file mode 100644 index 0000000..3c8af4a --- /dev/null +++ b/src/InputForm.js @@ -0,0 +1,111 @@ +import React, {useState} from 'react'; +import ValidatingInputNumberField from "./ValidatingInputNumberField"; + +export default function InputForm({handleResult}) { + const [width, setWidth] = useState(2); + const [height, setHeight] = useState(2); + const [id, setId] = useState(null); + const [status, setStatus] = useState("typing"); // "typing", "submitting" + + if (status === "submitted") { + return ; + } + const callAPI = () => { + let url = "https://manuel.friedli.info/labyrinth/create/json?w=" + width + + "&h=" + height; + if (!!id) { + url += "&id=" + id; + } + fetch(url) + .then(response => response.json()) + .then(result => { + handleResult(result); + // FIXME doesn't update the contents of the text input field. + setId(_ => result.id); + }) + .catch(reason => { + console.error("Failed to fetch maze data.", reason); + // FIXME alert is not user friendly + alert("Failed to fetch maze data: " + reason); + }) + .finally(() => { + setStatus("typing"); + }); + }; + const handleSubmit = (e) => { + e.preventDefault(); + setStatus("submitting"); + callAPI(); + }; + const validateWidthHeightInput = value => { + if (isNaN(value) || "" === value || (Math.floor(value) !== Number(value))) { + return { + valid: false, + message: "Must be an integer greater than 1.", + value + }; + } + if (value < 1) { + return { + valid: false, + message: "Must be greater than 1.", + value + }; + } + return { + valid: true, + value + }; + }; + const validateIdInput = value => { + // FIXME doesn't handle strings with characters correctly (e.g. "asdf" yields an empty value, due to "type=number"). + if (isNaN(value) || ("" !== value && ((Math.floor(value) !== Number(value))))) { + return { + valid: false, + message: "Must be empty or an integer", + value + }; + } + return { + valid: true, + value + } + }; + return ( +
+
+
+
+ + + ); +} diff --git a/src/Maze.js b/src/Maze.js index a1c97df..b67e65f 100644 --- a/src/Maze.js +++ b/src/Maze.js @@ -2,9 +2,14 @@ import React from 'react'; import Row from "./Row"; -export default function Maze({labyrinth}) { +export default function Maze({labyrinth, showSolution = false}) { + if (!labyrinth.grid) { + return
No valid maze.
+ } + const maze = labyrinth.grid.map((row, rowIdx) => ); + index={rowIdx} + showSolution={showSolution}/>); return (
{maze} diff --git a/src/Row.js b/src/Row.js index 213ce13..e52df33 100644 --- a/src/Row.js +++ b/src/Row.js @@ -1,11 +1,12 @@ import React from 'react'; import Cell from "./Cell"; -export default function Row({spec, index}) { +export default function Row({spec, index, showSolution}) { const cells = spec.map((cell, cellIdx) => ) + cellIndex={cellIdx} + showSolution={showSolution}/>) return (
{cells} diff --git a/src/ValidatingInputNumberField.js b/src/ValidatingInputNumberField.js new file mode 100644 index 0000000..5d54b0c --- /dev/null +++ b/src/ValidatingInputNumberField.js @@ -0,0 +1,49 @@ +import React, {useState} from 'react'; + +export default function ValidatingInputNumberField({ + id, + label, + defaultValue = 0, + constraints = {}, + validatorFn = (value) => { + return {valid: true, value}; + }, + disabled = false, + onChange = _ => { + } + }) { + const [error, setError] = useState(null); + const [value, setValue] = useState(defaultValue); + + const handleValueChange = (e) => { + const value = e.target.value; + const validation = validatorFn(value); + if (!validation.valid) { + setError(validation.message); + } else { + setError(null); + onChange(validation.value); + } + setValue(validation.value); + }; + let errorComponent; + if (!!error) { + errorComponent = {error}; + } else { + errorComponent = ; + } + return ( + + + + {errorComponent} + + ); +} diff --git a/src/styles.css b/src/styles.css index 0337869..00dc8c3 100644 --- a/src/styles.css +++ b/src/styles.css @@ -42,6 +42,9 @@ div.cell.left { border-left-color: #000; } +input:invalid { + border-color: #f00; +} body { font-family: sans-serif; margin: 20px; diff --git a/src/testdata.js b/src/testdata.js deleted file mode 100644 index 0739419..0000000 --- a/src/testdata.js +++ /dev/null @@ -1,3679 +0,0 @@ -export const maze1 = { - width: 3, - height: 2, - grid: [ - [ - { - left: true, - solution: true - }, - { - top: true, - solution: true - }, - { - top: true, - right: true, - bottom: true - } - ], - [ - { - right: true, - bottom: true, - left: true - }, - { - bottom: true, - left: true, - solution: true - }, - { - top: true, - right: true, - solution: true - } - ] - ] -}; - -export const maze2 = { - width: 3, - height: 3, - grid: [ - [ - {solution: true, left: true}, - {solution: true, top: true, bottom: true}, - { - solution: true, - right: true, - top: true - } - ], - [ - {left: true, right: true}, - {left: true, solution: true, top: true}, - { - solution: true, - right: true, - bottom: true - } - ], - [ - {left: true, right: true, bottom: true}, - { - left: true, - solution: true, - bottom: true - }, - {solution: true, right: true, top: true} - ] - ] -}; - -export const maze3 = { - "id": 222524481216700, - "width": 20, - "height": 30, - "grid": [[{ - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": true, - "left": false, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": false - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": false - }, { - "top": true, - "right": true, - "bottom": true, - "left": false, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }], [{ - "top": false, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": false, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }], [{ - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": false - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": false - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": false, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }], [{ - "top": true, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": false - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": false, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": false, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": true, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }], [{ - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": false - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": false - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": false, - "solution": false - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": false, - "solution": true - }], [{ - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": true, - "solution": false - }, { - "top": false, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": false - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": false - }, { - "top": true, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }], [{ - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": false - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": false, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": false - }], [{ - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": false - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": false - }, { - "top": true, - "right": true, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": true, - "right": true, - "bottom": false, - "left": true, - "solution": false - }], [{ - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": false, - "solution": false - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": false, - "bottom": false, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": true, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": false, - "solution": false - }], [{ - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": true, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": true, - "solution": false - }], [{ - "top": false, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": false, - "bottom": false, - "left": true, - "solution": false - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": true, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }], [{ - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": false - }, { - "top": true, - "right": true, - "bottom": true, - "left": false, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": false - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": false - }, { - "top": true, - "right": true, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": true, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": false - }, { - "top": true, - "right": true, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }], [{ - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": true, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": false, - "solution": false - }, { - "top": true, - "right": true, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": false - }, { - "top": true, - "right": true, - "bottom": true, - "left": false, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }], [{ - "top": false, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": true, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }], [{ - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": true, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": false - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": false, - "solution": true - }], [{ - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": false - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": false - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": false - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": false - }], [{ - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": false, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": true, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": false, - "solution": false - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": false - }], [{ - "top": true, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": false, - "solution": false - }, { - "top": true, - "right": true, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }], [{ - "top": false, - "right": false, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": true, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": false, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }], [{ - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": true, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": true, - "solution": false - }], [{ - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": true, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }], [{ - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": false, - "bottom": false, - "left": true, - "solution": false - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": false, - "solution": true - }], [{ - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": true, - "bottom": true, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }], [{ - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": false, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }], [{ - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": true, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": true, - "left": false, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }], [{ - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": true, - "solution": false - }], [{ - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }], [{ - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": false - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": false, - "solution": true - }], [{ - "top": false, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": false - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": false - }, { - "top": true, - "right": false, - "bottom": false, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": false, - "solution": false - }, { - "top": false, - "right": true, - "bottom": false, - "left": true, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": false - }], [{ - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": false - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": true, - "bottom": true, - "left": true, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": false - }, { - "top": true, - "right": true, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": false, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": false - }, { - "top": true, - "right": false, - "bottom": true, - "left": true, - "solution": false - }, { - "top": false, - "right": true, - "bottom": true, - "left": false, - "solution": false - }, { - "top": false, - "right": false, - "bottom": true, - "left": true, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": false, - "bottom": true, - "left": false, - "solution": true - }, { - "top": true, - "right": true, - "bottom": false, - "left": false, - "solution": true - }]] -}; \ No newline at end of file