; Cell Stuff ; This will result in a "2x2" cell, of [0 1 1 1], with 0 representing an empty ; space, and 1 representing a wall. (var (hall-width wall-width) (values 2 2)) ; This sets the "map width". This means 10 cells across and down. With each cell ; being 2x2, this results in a 20x20 square map. All maps will be square (for ; now). (var cell-num 10) ; Explicitly setting cell-size for convenience. All cells are squares (var cell-size (+ hall-width wall-width)) ; Initialize the cell table (var cells []) (print (length cells)) (for [c 1 (* cell-num cell-num)] (var cell []) (for [i 1 cell-size] (for [j 1 cell-size] (var cell-index (+ j (* (- i 1) cell-size))) (if (and (< i (+ hall-width 1)) (< j (+ hall-width 1))) (tset cell cell-index 0) (tset cell cell-index 1)))) (print (length cell)) (table.insert cells cell)) (fn map-row [i] (+ 1 (// (- i 1) cell-num))) (fn map-index [i] (+ (- (* i cell-size) 1) (* cell-size cell-num (- (map-row i) 1)))) (fn generate_cell_map [cells] (var cell_map []) (for [c 1 (length cells)] (var (mi ci) (values (map-index c) 1)) (for [i 1 cell-size] (for [j 1 cell-size] (var new-map-index (+ mi (+ (- i 1) (* (- j 1) (* cell-num cell-size))))) (var new-cell-index (+ ci (+ (- i 1) (* (- j 1) cell-size)))) (tset cell_map new-map-index (. cells c new-cell-index))))) cell_map) (print (length cells)) (print (length (generate_cell_map cells))) (var output "") (var ctp (. cells 51)) (for [i 1 (length ctp)] (set output (.. output " " (. ctp i)))) (print output)