From 6bf4b90c90f15f4ab60833bddf5b5756d1a6b1f6 Mon Sep 17 00:00:00 2001 From: Elizabeth Alexander Hunt Date: Thu, 2 Jul 2026 11:55:17 -0700 Subject: Init --- Homework/cs5410/bbiy/index.js | 55 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 Homework/cs5410/bbiy/index.js (limited to 'Homework/cs5410/bbiy/index.js') diff --git a/Homework/cs5410/bbiy/index.js b/Homework/cs5410/bbiy/index.js new file mode 100644 index 0000000..8b046c1 --- /dev/null +++ b/Homework/cs5410/bbiy/index.js @@ -0,0 +1,55 @@ +const express = require('express'); +const path = require('path'); +const fs = require('fs'); + +const MAP_LAYERS=2; + +const app = express(); +app.route('/').get((req, res) => { + res.sendFile(path.join(__dirname, 'index.html')); +}); + +app.route('/levels').get((req, res) => { + fs.readFile(path.join(__dirname, 'levels-all.bbiy'), 'utf8', (err, data) => { + if (err) { + console.log(err); + return; + } + + const levels = []; + const lines = data.split('\r\n'); + do { + const levelName = lines.shift(); + if (!levelName) { + break; + } + const [xDim, yDim] = lines.shift().split(' x ').map((x) => parseInt(x)); + + let level = Array(yDim).fill(null).map(() => Array(xDim).fill(null).map(() => [])); + for (let i = 0; i < MAP_LAYERS; i++) { + for (let y = 0; y < yDim; y++) { + const line = lines.shift().split(''); + for (let x = 0; x < xDim; x++) { + if (line[x] !== ' ') { + level[y][x].push(line[x]); + } + } + } + } + levels.push({ + levelName, + gridSize: {xDim, yDim}, + level, + }); + } while (lines.length); + + // Send the array of objects + res.send(levels); + }); +}); + +app.use(express.static('.')); + +app.listen(3000, () => { + console.log('Listening on 3000'); +}); -- cgit v1.3