From a6dbedb3cd250d4aff705e3951ac7a3e4a9ad205 Mon Sep 17 00:00:00 2001 From: John Alanbrook Date: Wed, 26 Feb 2025 11:16:35 -0600 Subject: [PATCH] add nota benchmark; builds no longer continue on test fail --- .github/workflows/build.yml | 1 - benchmarks/nota.js | 76 ++ benchmarks/nota.json | 2132 +++++++++++++++++++++++++++++++++++ 3 files changed, 2208 insertions(+), 1 deletion(-) create mode 100644 benchmarks/nota.js create mode 100644 benchmarks/nota.json diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0be716dc..b9cd74b5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -79,7 +79,6 @@ jobs: - name: Test Prosperon shell: msys2 {0} - continue-on-error: true env: TRACY_NO_INVARIANT_CHECK: 1 run: | diff --git a/benchmarks/nota.js b/benchmarks/nota.js new file mode 100644 index 00000000..8bd4f730 --- /dev/null +++ b/benchmarks/nota.js @@ -0,0 +1,76 @@ +var nota = use('nota') +var os = use('os') +var io = use('io') + +var ll = io.slurp('benchmarks/nota.json') + +var newarr = [] +var accstr = "" +for (var i = 0; i < 10000; i++) { + accstr += i; + newarr.push(i.toString()) +} +// Arrays to store timing results +var jsonDecodeTimes = []; +var jsonEncodeTimes = []; +var notaEncodeTimes = []; +var notaDecodeTimes = []; +var notaSizes = []; + +// Run 100 tests +for (let i = 0; i < 100; i++) { + // JSON Decode test + let start = os.now(); + var jll = json.decode(ll); + jsonDecodeTimes.push((os.now() - start) * 1000); + + // JSON Encode test + start = os.now(); + let jsonStr = JSON.stringify(jll); + jsonEncodeTimes.push((os.now() - start) * 1000); + + // NOTA Encode test + start = os.now(); + var nll = nota.encode(jll); + notaEncodeTimes.push((os.now() - start) * 1000); + + // NOTA Decode test + start = os.now(); + var oll = nota.decode(nll); + notaDecodeTimes.push((os.now() - start) * 1000); +} + +// Calculate statistics +function getStats(arr) { + const avg = arr.reduce((a, b) => a + b) / arr.length; + const min = Math.min(...arr); + const max = Math.max(...arr); + return { avg, min, max }; +} + +// Pretty print results +console.log("\n=== Performance Test Results (100 iterations) ==="); +console.log("\nJSON Decoding (ms):"); +const jsonDecStats = getStats(jsonDecodeTimes); +console.log(`Average: ${jsonDecStats.avg.toFixed(2)} ms`); +console.log(`Min: ${jsonDecStats.min.toFixed(2)} ms`); +console.log(`Max: ${jsonDecStats.max.toFixed(2)} ms`); + +console.log("\nJSON Encoding (ms):"); +const jsonEncStats = getStats(jsonEncodeTimes); +console.log(`Average: ${jsonEncStats.avg.toFixed(2)} ms`); +console.log(`Min: ${jsonEncStats.min.toFixed(2)} ms`); +console.log(`Max: ${jsonEncStats.max.toFixed(2)} ms`); + +console.log("\nNOTA Encoding (ms):"); +const notaEncStats = getStats(notaEncodeTimes); +console.log(`Average: ${notaEncStats.avg.toFixed(2)} ms`); +console.log(`Min: ${notaEncStats.min.toFixed(2)} ms`); +console.log(`Max: ${notaEncStats.max.toFixed(2)} ms`); + +console.log("\nNOTA Decoding (ms):"); +const notaDecStats = getStats(notaDecodeTimes); +console.log(`Average: ${notaDecStats.avg.toFixed(2)} ms`); +console.log(`Min: ${notaDecStats.min.toFixed(2)} ms`); +console.log(`Max: ${notaDecStats.max.toFixed(2)} ms`); + diff --git a/benchmarks/nota.json b/benchmarks/nota.json new file mode 100644 index 00000000..bffb22bf --- /dev/null +++ b/benchmarks/nota.json @@ -0,0 +1,2132 @@ +{ + "name": "See-Thru", + "level": [ + { + "x": 0, + "y": 2, + "value": [ + "wall" + ] + }, + { + "x": 0, + "y": 3, + "value": [ + "water" + ] + }, + { + "x": 0, + "y": 4, + "value": [ + "water" + ] + }, + { + "x": 0, + "y": 5, + "value": [ + "water" + ] + }, + { + "x": 0, + "y": 6, + "value": [ + "water" + ] + }, + { + "x": 0, + "y": 7, + "value": [ + "water" + ] + }, + { + "x": 0, + "y": 8, + "value": [ + "water" + ] + }, + { + "x": 0, + "y": 9, + "value": [ + "water" + ] + }, + { + "x": 0, + "y": 10, + "value": [ + "water" + ] + }, + { + "x": 0, + "y": 11, + "value": [ + "water" + ] + }, + { + "x": 0, + "y": 12, + "value": [ + "water" + ] + }, + { + "x": 0, + "y": 13, + "value": [ + "water" + ] + }, + { + "x": 0, + "y": 14, + "value": [ + "water" + ] + }, + { + "x": 0, + "y": 15, + "value": [ + "water" + ] + }, + { + "x": 0, + "y": 16, + "value": [ + "water" + ] + }, + { + "x": 0, + "y": 17, + "value": [ + "wall" + ] + }, + { + "x": 1, + "y": 2, + "value": [ + "wall" + ] + }, + { + "x": 1, + "y": 3, + "value": [ + "water" + ] + }, + { + "x": 1, + "y": 4, + "value": [ + "water" + ] + }, + { + "x": 1, + "y": 5, + "value": [ + "water" + ] + }, + { + "x": 1, + "y": 6, + "value": [ + "water" + ] + }, + { + "x": 1, + "y": 7, + "value": [ + "water" + ] + }, + { + "x": 1, + "y": 8, + "value": [ + "water" + ] + }, + { + "x": 1, + "y": 9, + "value": [ + "water" + ] + }, + { + "x": 1, + "y": 10, + "value": [ + "water" + ] + }, + { + "x": 1, + "y": 11, + "value": [ + "water" + ] + }, + { + "x": 1, + "y": 12, + "value": [ + "water" + ] + }, + { + "x": 1, + "y": 13, + "value": [ + "water" + ] + }, + { + "x": 1, + "y": 14, + "value": [ + "water" + ] + }, + { + "x": 1, + "y": 15, + "value": [ + "water" + ] + }, + { + "x": 1, + "y": 16, + "value": [ + "water" + ] + }, + { + "x": 1, + "y": 17, + "value": [ + "wall" + ] + }, + { + "x": 2, + "y": 2, + "value": [ + "wall" + ] + }, + { + "x": 2, + "y": 3, + "value": [ + "water" + ] + }, + { + "x": 2, + "y": 4, + "value": [ + "water" + ] + }, + { + "x": 2, + "y": 5, + "value": [ + "water" + ] + }, + { + "x": 2, + "y": 6, + "value": [ + "water" + ] + }, + { + "x": 2, + "y": 7, + "value": [ + "water" + ] + }, + { + "x": 2, + "y": 8, + "value": [ + "water" + ] + }, + { + "x": 2, + "y": 9, + "value": [ + "water" + ] + }, + { + "x": 2, + "y": 10, + "value": [ + "water" + ] + }, + { + "x": 2, + "y": 11, + "value": [ + "water" + ] + }, + { + "x": 2, + "y": 12, + "value": [ + "water" + ] + }, + { + "x": 2, + "y": 13, + "value": [ + "water" + ] + }, + { + "x": 2, + "y": 14, + "value": [ + "water" + ] + }, + { + "x": 2, + "y": 15, + "value": [ + "water" + ] + }, + { + "x": 2, + "y": 16, + "value": [ + "water" + ] + }, + { + "x": 2, + "y": 17, + "value": [ + "wall" + ] + }, + { + "x": 3, + "y": 2, + "value": [ + "wall" + ] + }, + { + "x": 3, + "y": 3, + "value": [ + "water" + ] + }, + { + "x": 3, + "y": 4, + "value": [ + "water" + ] + }, + { + "x": 3, + "y": 5, + "value": [ + "water" + ] + }, + { + "x": 3, + "y": 6, + "value": [ + "water" + ] + }, + { + "x": 3, + "y": 7, + "value": [ + "water" + ] + }, + { + "x": 3, + "y": 8, + "value": [ + "water" + ] + }, + { + "x": 3, + "y": 9, + "value": [ + "water" + ] + }, + { + "x": 3, + "y": 10, + "value": [ + "water" + ] + }, + { + "x": 3, + "y": 11, + "value": [ + "flowers" + ] + }, + { + "x": 3, + "y": 12, + "value": [ + "flowers" + ] + }, + { + "x": 3, + "y": 13, + "value": [ + "flowers" + ] + }, + { + "x": 3, + "y": 14, + "value": [ + "flowers" + ] + }, + { + "x": 3, + "y": 15, + "value": [ + "water" + ] + }, + { + "x": 3, + "y": 16, + "value": [ + "water" + ] + }, + { + "x": 3, + "y": 17, + "value": [ + "wall" + ] + }, + { + "x": 4, + "y": 2, + "value": [ + "wall" + ] + }, + { + "x": 4, + "y": 3, + "value": [ + "water" + ] + }, + { + "x": 4, + "y": 4, + "value": [ + "water" + ] + }, + { + "x": 4, + "y": 5, + "value": [ + "water" + ] + }, + { + "x": 4, + "y": 6, + "value": [ + "water" + ] + }, + { + "x": 4, + "y": 7, + "value": [ + "water" + ] + }, + { + "x": 4, + "y": 8, + "value": [ + "flowers" + ] + }, + { + "x": 4, + "y": 9, + "value": [ + "flowers" + ] + }, + { + "x": 4, + "y": 10, + "value": [ + "flowers" + ] + }, + { + "x": 4, + "y": 11, + "value": [ + "flowers" + ] + }, + { + "x": 4, + "y": 12, + "value": [ + "flowers" + ] + }, + { + "x": 4, + "y": 13, + "value": [ + "flowers" + ] + }, + { + "x": 4, + "y": 14, + "value": [ + "flowers" + ] + }, + { + "x": 4, + "y": 15, + "value": [ + "flowers" + ] + }, + { + "x": 4, + "y": 16, + "value": [ + "water" + ] + }, + { + "x": 4, + "y": 17, + "value": [ + "wall" + ] + }, + { + "x": 5, + "y": 2, + "value": [ + "wall" + ] + }, + { + "x": 5, + "y": 3, + "value": [ + "water" + ] + }, + { + "x": 5, + "y": 4, + "value": [ + "water" + ] + }, + { + "x": 5, + "y": 5, + "value": [ + "water" + ] + }, + { + "x": 5, + "y": 6, + "value": [ + "water" + ] + }, + { + "x": 5, + "y": 7, + "value": [ + "flowers" + ] + }, + { + "x": 5, + "y": 8, + "value": [ + "spikes" + ] + }, + { + "x": 5, + "y": 10, + "value": [ + "flowers" + ] + }, + { + "x": 5, + "y": 13, + "value": [ + "fool" + ] + }, + { + "x": 5, + "y": 14, + "value": [ + "flowers" + ] + }, + { + "x": 5, + "y": 15, + "value": [ + "flowers" + ] + }, + { + "x": 5, + "y": 16, + "value": [ + "water" + ] + }, + { + "x": 5, + "y": 17, + "value": [ + "wall" + ] + }, + { + "x": 6, + "y": 2, + "value": [ + "wall" + ] + }, + { + "x": 6, + "y": 3, + "value": [ + "water" + ] + }, + { + "x": 6, + "y": 4, + "value": [ + "water" + ] + }, + { + "x": 6, + "y": 5, + "value": [ + "water" + ] + }, + { + "x": 6, + "y": 6, + "value": [ + "flowers" + ] + }, + { + "x": 6, + "y": 7, + "value": [ + "flowers" + ] + }, + { + "x": 6, + "y": 8, + "value": [ + "portal" + ] + }, + { + "x": 6, + "y": 12, + "value": [ + "glass" + ] + }, + { + "x": 6, + "y": 14, + "value": [ + "flowers" + ] + }, + { + "x": 6, + "y": 15, + "value": [ + "water" + ] + }, + { + "x": 6, + "y": 16, + "value": [ + "water" + ] + }, + { + "x": 6, + "y": 17, + "value": [ + "wall" + ] + }, + { + "x": 7, + "y": 2, + "value": [ + "wall" + ] + }, + { + "x": 7, + "y": 3, + "value": [ + "water" + ] + }, + { + "x": 7, + "y": 4, + "value": [ + "water" + ] + }, + { + "x": 7, + "y": 5, + "value": [ + "flowers" + ] + }, + { + "x": 7, + "y": 6, + "value": [ + "flowers" + ] + }, + { + "x": 7, + "y": 8, + "value": [ + "spikes" + ] + }, + { + "x": 7, + "y": 10, + "value": [ + "glass" + ] + }, + { + "x": 7, + "y": 14, + "value": [ + "flowers" + ] + }, + { + "x": 7, + "y": 15, + "value": [ + "water" + ] + }, + { + "x": 7, + "y": 16, + "value": [ + "water" + ] + }, + { + "x": 7, + "y": 17, + "value": [ + "wall" + ] + }, + { + "x": 8, + "y": 2, + "value": [ + "wall" + ] + }, + { + "x": 8, + "y": 3, + "value": [ + "water" + ] + }, + { + "x": 8, + "y": 4, + "value": [ + "flowers" + ] + }, + { + "x": 8, + "y": 5, + "value": [ + "flowers" + ] + }, + { + "x": 8, + "y": 6, + "value": [ + "glass" + ] + }, + { + "x": 8, + "y": 8, + "value": [ + "spikes" + ] + }, + { + "x": 8, + "y": 12, + "value": [ + "glass" + ] + }, + { + "x": 8, + "y": 14, + "value": [ + "flowers" + ] + }, + { + "x": 8, + "y": 15, + "value": [ + "water" + ] + }, + { + "x": 8, + "y": 16, + "value": [ + "water" + ] + }, + { + "x": 8, + "y": 17, + "value": [ + "wall" + ] + }, + { + "x": 9, + "y": 2, + "value": [ + "wall" + ] + }, + { + "x": 9, + "y": 3, + "value": [ + "flowers" + ] + }, + { + "x": 9, + "y": 4, + "value": [ + "flowers" + ] + }, + { + "x": 9, + "y": 8, + "value": [ + "glass" + ] + }, + { + "x": 9, + "y": 9, + "value": [ + "thrall" + ] + }, + { + "x": 9, + "y": 10, + "value": [ + "glass" + ] + }, + { + "x": 9, + "y": 14, + "value": [ + "flowers" + ] + }, + { + "x": 9, + "y": 15, + "value": [ + "water" + ] + }, + { + "x": 9, + "y": 16, + "value": [ + "water" + ] + }, + { + "x": 9, + "y": 17, + "value": [ + "wall" + ] + }, + { + "x": 10, + "y": 2, + "value": [ + "wall" + ] + }, + { + "x": 10, + "y": 3, + "value": [ + "flowers" + ] + }, + { + "x": 10, + "y": 4, + "value": [ + "glass" + ] + }, + { + "x": 10, + "y": 6, + "value": [ + "glass" + ] + }, + { + "x": 10, + "y": 8, + "value": [ + "spikes" + ] + }, + { + "x": 10, + "y": 12, + "value": [ + "glass" + ] + }, + { + "x": 10, + "y": 14, + "value": [ + "flowers" + ] + }, + { + "x": 10, + "y": 15, + "value": [ + "water" + ] + }, + { + "x": 10, + "y": 16, + "value": [ + "water" + ] + }, + { + "x": 10, + "y": 17, + "value": [ + "wall" + ] + }, + { + "x": 11, + "y": 2, + "value": [ + "wall" + ] + }, + { + "x": 11, + "y": 3, + "value": [ + "flowers" + ] + }, + { + "x": 11, + "y": 7, + "value": [ + "player" + ] + }, + { + "x": 11, + "y": 8, + "value": [ + "spikes" + ] + }, + { + "x": 11, + "y": 10, + "value": [ + "glass" + ] + }, + { + "x": 11, + "y": 14, + "value": [ + "flowers" + ] + }, + { + "x": 11, + "y": 15, + "value": [ + "water" + ] + }, + { + "x": 11, + "y": 16, + "value": [ + "water" + ] + }, + { + "x": 11, + "y": 17, + "value": [ + "wall" + ] + }, + { + "x": 12, + "y": 2, + "value": [ + "wall" + ] + }, + { + "x": 12, + "y": 3, + "value": [ + "flowers" + ] + }, + { + "x": 12, + "y": 4, + "value": [ + "glass" + ] + }, + { + "x": 12, + "y": 6, + "value": [ + "glass" + ] + }, + { + "x": 12, + "y": 8, + "value": [ + "portal" + ] + }, + { + "x": 12, + "y": 12, + "value": [ + "glass" + ] + }, + { + "x": 12, + "y": 13, + "value": [ + "flowers" + ] + }, + { + "x": 12, + "y": 14, + "value": [ + "flowers" + ] + }, + { + "x": 12, + "y": 15, + "value": [ + "water" + ] + }, + { + "x": 12, + "y": 16, + "value": [ + "water" + ] + }, + { + "x": 12, + "y": 17, + "value": [ + "wall" + ] + }, + { + "x": 13, + "y": 2, + "value": [ + "wall" + ] + }, + { + "x": 13, + "y": 3, + "value": [ + "flowers" + ] + }, + { + "x": 13, + "y": 8, + "value": [ + "spikes" + ] + }, + { + "x": 13, + "y": 10, + "value": [ + "flowers" + ] + }, + { + "x": 13, + "y": 12, + "value": [ + "flowers" + ] + }, + { + "x": 13, + "y": 13, + "value": [ + "flowers" + ] + }, + { + "x": 13, + "y": 14, + "value": [ + "flowers" + ] + }, + { + "x": 13, + "y": 15, + "value": [ + "water" + ] + }, + { + "x": 13, + "y": 16, + "value": [ + "water" + ] + }, + { + "x": 13, + "y": 17, + "value": [ + "wall" + ] + }, + { + "x": 14, + "y": 2, + "value": [ + "wall" + ] + }, + { + "x": 14, + "y": 3, + "value": [ + "flowers" + ] + }, + { + "x": 14, + "y": 4, + "value": [ + "flowers" + ] + }, + { + "x": 14, + "y": 5, + "value": [ + "fool" + ] + }, + { + "x": 14, + "y": 6, + "value": [ + "glass" + ] + }, + { + "x": 14, + "y": 9, + "value": [ + "flowers" + ] + }, + { + "x": 14, + "y": 10, + "value": [ + "flowers" + ] + }, + { + "x": 14, + "y": 11, + "value": [ + "flowers" + ] + }, + { + "x": 14, + "y": 12, + "value": [ + "flowers" + ] + }, + { + "x": 14, + "y": 13, + "value": [ + "flowers" + ] + }, + { + "x": 14, + "y": 14, + "value": [ + "water" + ] + }, + { + "x": 14, + "y": 15, + "value": [ + "water" + ] + }, + { + "x": 14, + "y": 16, + "value": [ + "water" + ] + }, + { + "x": 14, + "y": 17, + "value": [ + "wall" + ] + }, + { + "x": 15, + "y": 2, + "value": [ + "wall" + ] + }, + { + "x": 15, + "y": 3, + "value": [ + "water" + ] + }, + { + "x": 15, + "y": 4, + "value": [ + "flowers" + ] + }, + { + "x": 15, + "y": 5, + "value": [ + "flowers" + ] + }, + { + "x": 15, + "y": 6, + "value": [ + "flowers" + ] + }, + { + "x": 15, + "y": 7, + "value": [ + "flowers" + ] + }, + { + "x": 15, + "y": 8, + "value": [ + "flowers" + ] + }, + { + "x": 15, + "y": 9, + "value": [ + "flowers" + ] + }, + { + "x": 15, + "y": 10, + "value": [ + "water" + ] + }, + { + "x": 15, + "y": 11, + "value": [ + "water" + ] + }, + { + "x": 15, + "y": 12, + "value": [ + "water" + ] + }, + { + "x": 15, + "y": 13, + "value": [ + "water" + ] + }, + { + "x": 15, + "y": 14, + "value": [ + "water" + ] + }, + { + "x": 15, + "y": 15, + "value": [ + "water" + ] + }, + { + "x": 15, + "y": 16, + "value": [ + "water" + ] + }, + { + "x": 15, + "y": 17, + "value": [ + "wall" + ] + }, + { + "x": 16, + "y": 2, + "value": [ + "wall" + ] + }, + { + "x": 16, + "y": 3, + "value": [ + "water" + ] + }, + { + "x": 16, + "y": 4, + "value": [ + "water" + ] + }, + { + "x": 16, + "y": 5, + "value": [ + "water" + ] + }, + { + "x": 16, + "y": 6, + "value": [ + "water" + ] + }, + { + "x": 16, + "y": 7, + "value": [ + "water" + ] + }, + { + "x": 16, + "y": 8, + "value": [ + "water" + ] + }, + { + "x": 16, + "y": 9, + "value": [ + "water" + ] + }, + { + "x": 16, + "y": 10, + "value": [ + "water" + ] + }, + { + "x": 16, + "y": 11, + "value": [ + "water" + ] + }, + { + "x": 16, + "y": 12, + "value": [ + "water" + ] + }, + { + "x": 16, + "y": 13, + "value": [ + "water" + ] + }, + { + "x": 16, + "y": 14, + "value": [ + "water" + ] + }, + { + "x": 16, + "y": 15, + "value": [ + "water" + ] + }, + { + "x": 16, + "y": 16, + "value": [ + "water" + ] + }, + { + "x": 16, + "y": 17, + "value": [ + "wall" + ] + }, + { + "x": 17, + "y": 2, + "value": [ + "wall" + ] + }, + { + "x": 17, + "y": 3, + "value": [ + "water" + ] + }, + { + "x": 17, + "y": 4, + "value": [ + "water" + ] + }, + { + "x": 17, + "y": 5, + "value": [ + "water" + ] + }, + { + "x": 17, + "y": 6, + "value": [ + "water" + ] + }, + { + "x": 17, + "y": 7, + "value": [ + "water" + ] + }, + { + "x": 17, + "y": 8, + "value": [ + "water" + ] + }, + { + "x": 17, + "y": 9, + "value": [ + "water" + ] + }, + { + "x": 17, + "y": 10, + "value": [ + "water" + ] + }, + { + "x": 17, + "y": 11, + "value": [ + "water" + ] + }, + { + "x": 17, + "y": 12, + "value": [ + "water" + ] + }, + { + "x": 17, + "y": 13, + "value": [ + "water" + ] + }, + { + "x": 17, + "y": 14, + "value": [ + "water" + ] + }, + { + "x": 17, + "y": 15, + "value": [ + "water" + ] + }, + { + "x": 17, + "y": 16, + "value": [ + "water" + ] + }, + { + "x": 17, + "y": 17, + "value": [ + "wall" + ] + }, + { + "x": 18, + "y": 2, + "value": [ + "wall" + ] + }, + { + "x": 18, + "y": 3, + "value": [ + "water" + ] + }, + { + "x": 18, + "y": 4, + "value": [ + "water" + ] + }, + { + "x": 18, + "y": 5, + "value": [ + "water" + ] + }, + { + "x": 18, + "y": 6, + "value": [ + "water" + ] + }, + { + "x": 18, + "y": 7, + "value": [ + "water" + ] + }, + { + "x": 18, + "y": 8, + "value": [ + "water" + ] + }, + { + "x": 18, + "y": 9, + "value": [ + "water" + ] + }, + { + "x": 18, + "y": 10, + "value": [ + "water" + ] + }, + { + "x": 18, + "y": 11, + "value": [ + "water" + ] + }, + { + "x": 18, + "y": 12, + "value": [ + "water" + ] + }, + { + "x": 18, + "y": 13, + "value": [ + "water" + ] + }, + { + "x": 18, + "y": 14, + "value": [ + "water" + ] + }, + { + "x": 18, + "y": 15, + "value": [ + "water" + ] + }, + { + "x": 18, + "y": 16, + "value": [ + "water" + ] + }, + { + "x": 18, + "y": 17, + "value": [ + "wall" + ] + }, + { + "x": 19, + "y": 2, + "value": [ + "wall" + ] + }, + { + "x": 19, + "y": 3, + "value": [ + "water" + ] + }, + { + "x": 19, + "y": 4, + "value": [ + "water" + ] + }, + { + "x": 19, + "y": 5, + "value": [ + "water" + ] + }, + { + "x": 19, + "y": 6, + "value": [ + "water" + ] + }, + { + "x": 19, + "y": 7, + "value": [ + "water" + ] + }, + { + "x": 19, + "y": 8, + "value": [ + "water" + ] + }, + { + "x": 19, + "y": 9, + "value": [ + "water" + ] + }, + { + "x": 19, + "y": 10, + "value": [ + "water" + ] + }, + { + "x": 19, + "y": 11, + "value": [ + "water" + ] + }, + { + "x": 19, + "y": 12, + "value": [ + "water" + ] + }, + { + "x": 19, + "y": 13, + "value": [ + "water" + ] + }, + { + "x": 19, + "y": 14, + "value": [ + "water" + ] + }, + { + "x": 19, + "y": 15, + "value": [ + "water" + ] + }, + { + "x": 19, + "y": 16, + "value": [ + "water" + ] + }, + { + "x": 19, + "y": 17, + "value": [ + "wall" + ] + }, + { + "x": 20, + "y": 2, + "value": [ + "wall" + ] + }, + { + "x": 20, + "y": 3, + "value": [ + "wall" + ] + }, + { + "x": 20, + "y": 4, + "value": [ + "wall" + ] + }, + { + "x": 20, + "y": 5, + "value": [ + "wall" + ] + }, + { + "x": 20, + "y": 6, + "value": [ + "wall" + ] + }, + { + "x": 20, + "y": 7, + "value": [ + "wall" + ] + }, + { + "x": 20, + "y": 8, + "value": [ + "wall" + ] + }, + { + "x": 20, + "y": 9, + "value": [ + "wall" + ] + }, + { + "x": 20, + "y": 10, + "value": [ + "wall" + ] + }, + { + "x": 20, + "y": 11, + "value": [ + "wall" + ] + }, + { + "x": 20, + "y": 12, + "value": [ + "wall" + ] + }, + { + "x": 20, + "y": 13, + "value": [ + "wall" + ] + }, + { + "x": 20, + "y": 14, + "value": [ + "wall" + ] + }, + { + "x": 20, + "y": 15, + "value": [ + "wall" + ] + }, + { + "x": 20, + "y": 16, + "value": [ + "wall" + ] + }, + { + "x": 20, + "y": 17, + "value": [ + "wall" + ] + }, + { + "x": -1, + "y": 2, + "value": [ + "wall" + ] + }, + { + "x": -1, + "y": 3, + "value": [ + "wall" + ] + }, + { + "x": -1, + "y": 4, + "value": [ + "wall" + ] + }, + { + "x": -1, + "y": 5, + "value": [ + "wall" + ] + }, + { + "x": -1, + "y": 6, + "value": [ + "wall" + ] + }, + { + "x": -1, + "y": 7, + "value": [ + "wall" + ] + }, + { + "x": -1, + "y": 8, + "value": [ + "wall" + ] + }, + { + "x": -1, + "y": 9, + "value": [ + "wall" + ] + }, + { + "x": -1, + "y": 10, + "value": [ + "wall" + ] + }, + { + "x": -1, + "y": 11, + "value": [ + "wall" + ] + }, + { + "x": -1, + "y": 12, + "value": [ + "wall" + ] + }, + { + "x": -1, + "y": 13, + "value": [ + "wall" + ] + }, + { + "x": -1, + "y": 14, + "value": [ + "wall" + ] + }, + { + "x": -1, + "y": 15, + "value": [ + "wall" + ] + }, + { + "x": -1, + "y": 16, + "value": [ + "wall" + ] + }, + { + "x": -1, + "y": 17, + "value": [ + "wall" + ] + } + ], + "file": "game/45.json", + "id": 55, + "version": "0.1", + "thumbnail": { + "path": "game/45.png" + } +} \ No newline at end of file