From 4186f80a09be65e4a00044aac6c596fd8716128c Mon Sep 17 00:00:00 2001 From: Michael Soukup Date: Wed, 18 Aug 2021 23:47:45 +0200 Subject: [PATCH] Revive and add recordings and README. --- README.md | 23 + broken/ca.html | 35 ++ broken/ca.js | 877 ++++++++++++++++++++++++++++++++ hex/ca-hex.html | 35 ++ hex/ca-hex.js | 529 +++++++++++++++++++ hex/recording.gif | Bin 0 -> 79542 bytes interactive/ca-interactive.html | 35 ++ interactive/ca-interactive.js | 580 +++++++++++++++++++++ interactive/recording.gif | Bin 0 -> 3500557 bytes 9 files changed, 2114 insertions(+) create mode 100644 README.md create mode 100755 broken/ca.html create mode 100755 broken/ca.js create mode 100755 hex/ca-hex.html create mode 100755 hex/ca-hex.js create mode 100644 hex/recording.gif create mode 100755 interactive/ca-interactive.html create mode 100755 interactive/ca-interactive.js create mode 100644 interactive/recording.gif diff --git a/README.md b/README.md new file mode 100644 index 0000000..a9540ed --- /dev/null +++ b/README.md @@ -0,0 +1,23 @@ +# Cellular automata experiments + +Cellular automata experiments and game ideas from 2014. + + +## Hexagonal + +Cellular automata on a hexagonal grid and a home-cooked rule set. + +![Hex](hex/recording.gif "Hexagonal") + + +## Interactive + +Not really an automata since this one is interactive. Control the thing +with the arrow keys. + +![Interactive](interactive/recording.gif "Interactive") + + +## Broken + +This one is not working. Not bothering to fix it, got no git history. diff --git a/broken/ca.html b/broken/ca.html new file mode 100755 index 0000000..ad0f2ea --- /dev/null +++ b/broken/ca.html @@ -0,0 +1,35 @@ + + + + CA + + + + + +
+ +
+ + + + diff --git a/broken/ca.js b/broken/ca.js new file mode 100755 index 0000000..972d3c5 --- /dev/null +++ b/broken/ca.js @@ -0,0 +1,877 @@ +/* + * Michael Soukup, 2014 +*/ + + +//var DIM = [window.innerWidth, window.innerHeight]; + +function zeros(m, n) { + var mat = []; + for (var i=0; i 0 && this.dim.x > dx) || (dx < 0 && f.dim.x < -dx)), + inter_y = ((dy > 0 && this.dim.y > dy) || (dy < 0 && f.dim.y < -dy)); + + return inter_x && inter_y +} +Frame.prototype.join = function(f) { + // Expands frame to also fit f + var x_min = Math.min(this.coords.x, f.coords.x), + y_min = Math.min(this.coords.y, f.coords.y), + x_max = Math.max(this.coords.x+this.dim.x, f.coords.x+f.dim.x), + y_max = Math.max(this.coords.y+this.dim.y, f.coords.y+f.dim.y); + + this.coords.x = x_min; + this.coords.y = y_min; + this.dim.x = x_max - x_min; + this.dim.y = y_max - y_min; +} +Frame.prototype.intersect = function(f) { + // this AND f + var dx = f.coords.x - this.coords.x, + dy = f.coords.y - this.coords.y; + + if (dx > 0) { + this.coords.x = f.coords.x; + this.dim.x = Math.min(this.dim.x - dx, f.dim.x); + } + else { + this.dim.x = Math.min(f.dim.x + dx, this.dim.x); + } + if (dy > 0) { + this.coords.y = f.coords.y; + this.dim.y = Math.min(this.dim.y - dy, f.dim.y); + } + else { + this.dim.y = Math.min(f.dim.y + dy, this.dim.y); + } +} + + +var CELL_COL = { + 0: '#000', + 1: '#222', + 2: '#484', + 3: '#a44', + 4: '#8a8a8a' + }, + CELL_T = { + 'empty': 0, + 'wall': 1, + 'player': 2, + 'enemy': 3, + 'conway': 4 + }, + CELL_CONFIGS = { + 'player0': [ + [0,2,2,0,0,0], + [0,0,0,0,0,0], + [0,0,0,0,0,0], + [0,0,0,4,4,0], + [0,0,4,0,4,0], + [0,0,0,4,0,0] + ], + 'enemy0': [ + [0,3,3,3,3,0], + [3,4,4,0,3,3], + [3,4,0,0,0,3], + [3,0,0,4,4,3], + [3,0,4,0,3,3], + [0,3,3,3,0,0] + ], + 'organism0': [ + [0,0,0,0,0,0,4,4], + [0,0,4,4,4,4,4,4], + [0,0,0,4,0,0,0,0], + [0,4,0,0,0,0,0,0], + [0,4,4,4,0,4,0,4], + [4,4,4,0,4,4,4,4], + [0,0,4,4,4,0,0,0] + ], + 'box': [ + [0,0,0,0], + [0,4,4,0], + [0,4,4,0], + [0,0,0,0] + ], + 'diamond': [ + [0,4,0,0], + [4,0,4,0], + [0,4,0,0], + [0,0,0,0] + ] + }; + + +function Ndist(N, r) { + var dist = [0,0,0,0,0]; + for (var x=0; x 2) { + return 2 + } + else if (dist[4] == 2 || dist[4] == 3) { + return 4 + } + else { + return 0 + } +} +function cellNext(N) { + // Size of neighbourhood N is nxn where n is (r*2 + 1), r in {1,2,3...}: + // 3x3, 5x5, 7x7, ... + + var r = (N.length - 1) / 2, // must be int + cell = N[r][r]; + + switch (cell) { + case 0: + return cell_0_update(N, r); + case 1: + return cell_1_update(N, r); + case 2: + return cell_2_update(N, r); + case 3: + return cell_3_update(N, r); + case 4: + return cell_4_update(N, r); + } +} + + +// Every organism has a pointer to the environment + +// dim_cam, coords_cam, px_tile, dim_frame, coords_frame, tiles_frame + +// function Organism(configuration, x, y, tilesize) { +// // Tiles can be of any size px_tile_min*n, n in N + +// this.p = new Vector(x, y); // continuous +// this.v = new Vector(0, 0); + +// this.px_tile = tilesize; +// this.tiles = new Vector(configuration[0].length, configuration.length); + +// this.config = configuration; +// this.config_buf = zeros(this.tiles.x, this.tiles.y); + +// this.frame = new Frame(new Vector(nearestMod0(x, tilesize), nearestMod0(y, tilesize)), +// new Vector(tilesize*this.tiles.x, tilesize*this.tiles.y)); + +// //this.coords_center = null // keep track of center for steering and battle + +// } +// Organism.prototype.getNeighbourhood = function(cx, cy, r) { +// var n = (r*2)+1, +// N = zeros(n,n); + +// for (var x=cx-r; x<=cx+r; x++) { +// for (var y=cy-r; y<=cy+r; y++) { +// if ((x < 0 || x >= this.tiles.x) || (y < 0 || y >= this.tiles.y)) { +// N[x+r-cx][y+r-cy] = 0; // Tiles outside constraints are 0 anyways +// } +// else { +// N[x+r-cx][y+r-cy] = this.config[x][y]; +// } +// } +// } +// return N +// } +// Organism.prototype.updateCells = function() { +// // find player cell center +// for (var x=0; x= this.tiles.x) || (y < 0 || y >= this.tiles.y)) { + N[x+r-cx][y+r-cy] = 0; // Tiles outside constraints are 0 anyways + } + else { + N[x+r-cx][y+r-cy] = this.config[x][y]; + } + } + } + return N +} +Organism.prototype.updateCells = function() { + var config_buf = zeros(this.tiles.x, this.tiles.y); + + for (var x=0; x 0 + dy = y - this.frame.dim.y; + + this.frame.coords.x += -dx/2; + this.frame.coords.y += -dy/2; + this.frame.dim.x = x; + this.frame.dim.y = y; + + this.move(dF, dt); + + // fit frame and simulate + this.frame.align(this.px_tile); + var new_tiles = new Vector(this.frame.dim.x / this.px_tile, this.frame.dim.y / this.px_tile); + this.setConfig(new_tiles); + this.updateCells(); +} + + + + +var Game = (function(canvas_id) { + + var canvas = document.getElementById(canvas_id), + ctx = canvas.getContext('2d'), + + // Set up camera and simulation frame + // Camera moves continuously, frame size and coords must fit tiles. + + dim_cam = new Vector(canvas.width, canvas.height), + coords_cam = new Vector(0.0, 0.0), // Initial view: coords_cam -> coords_cam+dim_cam + + px_tile_min = 5, // 5x5 pixels + dim_frame = new Vector(nearestMod0(2*dim_cam.x, px_tile_min), nearestMod0(2*dim_cam.y, px_tile_min)), + coords_frame = new Vector(nearestMod0(coords_cam.x - 0.25*dim_frame.x, px_tile_min), nearestMod0(coords_cam.y - 0.25*dim_frame.y, px_tile_min)), + tiles_frame = new Vector(dim_frame.x/px_tile_min, dim_frame.y/px_tile_min), + + player, enemies = [], organisms = [], + + level0 = [ + 'player0,55,60', + 'enemy0,120,24', + 'organism0,-5,0', + 'box,120,32', + 'diamond,87,32' + ]; + + //cells = zeros(tiles_frame.x, tiles_frame.y), + //cells_buf = (tiles_frame.x, tiles_frame.y), + + + // function detectNearbyEnemies(organism) { + // // Returns a list of indices of nearby enemies + // } + + // function _setOrganismBox(organism, nearby) { + // // assume all coords are tile fitted + + // // pos_o = box_coord + 0.5*box + // var pos_o = Vector(organism.box_coords.x + 0.5*organism.box.x, organism.box_coords.y + 0.5*organism.box.y), + // old_coords = Vector(organism.box_coords.x, organism.box_coords.y), + // old_box = Vector(organism.box.x, organism.box.y) + + // for (var i=0; i 0) { + // ctx.fillStyle = cellcol[configuration[j][i]]; + // ctx.beginPath(); + // ctx.rect((i+x)*tilesize+0.5, (j+y)*tilesize+0.5, tilesize-0.5, tilesize-0.5); + // ctx.closePath(); + // ctx.fill(); + // } + // } + // } + // } + // function update(vx, vy) { + // updateCells(vx, vy); + // } + + // function drawCells() { + // for (var i=0; i 0) { + // ctx.fillStyle = cellcol[cells[i][j]]; + // ctx.beginPath(); + // ctx.rect(i*tilesize+0.5, j*tilesize+0.5, tilesize-0.5, tilesize-0.5); + // ctx.closePath(); + // ctx.fill(); + // } + // } + // } + // } + + // function drawGrid() { + // ctx.translate(0.5, 0.5); // Transform canvas to get sharp lines + // ctx.strokeStyle = 'black'; + // ctx.lineWidth = 0.1; + + // for (var i=1; i 0) { + // ctx.fillStyle = CELL_COL[organism.config[j][i]]; + // ctx.beginPath(); + + // // Draw every 5x5 tile at x = (i+x)*tile_min + x_t0, y = (j+y)*tile_min + y_t0 + // ctx.rect((i+x)*tile_min+x_t0+0.5, (j+y)*tile_min+y_t0+0.5, tile_min-0.5, tile_min-0.5); + // ctx.closePath(); + // ctx.fill(); + // } + // } + // } + // } + function framesOverlap(o1, o2) { + + } + + + function minimumDist(o1, o2, d_gap, cell_sep) { + // returns true if o1 and o2 are touching or have a layer of maximum width d_gap consisting only of celltype cell_sep. + + // try finding a layer. If no layer, return true + // try expanding the layer. If d_layer > d_gap return false + + } + + function updatePlayer() { + var new_enemies = [], new_organisms = []; + + // Split player? Implement later + + var gap = 2; + for (var i=0; i + + + CA + + + + + +
+ +
+ + + + diff --git a/hex/ca-hex.js b/hex/ca-hex.js new file mode 100755 index 0000000..c682156 --- /dev/null +++ b/hex/ca-hex.js @@ -0,0 +1,529 @@ +/* + Cellular automata, polar coordinates. + + Michael Soukup, 2014 +*/ + + +function nearestMod0(f, n) { + var mod = f % n; + if (mod < n/2) { // floor + return f-mod + } + else { // ceil + return f+n-mod + } +} + + + + +function Cartesian(x, y) { + this.x = x; + this.y = y; +} + +Cartesian.prototype.r = function() { + return Math.sqrt(Math.pow(this.x,2) + Math.pow(this.y, 2)); +} + +Cartesian.prototype.theta = function() { + return Math.atan2(this.y, this.x); +} + + + + +function Polar(r, theta) { + this.r = r; + this.theta = theta; +} + +Polar.prototype.x = function() { + return this.r*Math.cos(this.theta); +} + +Polar.prototype.y = function() { + return this.r*Math.sin(this.theta); +} + + + + +function Vector(x, y) { + this.x = x; + this.y = y; +} + +Vector.prototype.add = function(v) { + this.x += v.x; + this.y += v.y; +} + +Vector.prototype.sub = function(v) { + this.x -= v.x; + this.y -= v.y; +} + + + + +function Frame(o, v) { + this.o = o; + this.v = v; +} + +Frame.prototype.center = function() { + return new Cartesian(this.o.x + this.v.x/2, this.o.y + this.v.y/2); +} + + + + +var CELL_COL = { + 0: '#eee', + 1: '#222', + 2: '#484', + 3: '#a44', + 4: '#8a8a8a' + }, + CELL_STROKE = { + 0: '#bbb', + 1: '#222', + 2: '#484', + 3: '#a44', + 4: '#8a8a8a' + }, + CELL_LINEWIDTH = { + 0: 0.1, + 1: 0.8, + 2: 0.5, + 3: 0.5, + 4: 0.2 + }, + CELL_T = { + 'empty': 0, + 'wall': 1, + 'player': 2, + 'enemy': 3, + 'conway': 4 + }, + CELL_CONFIGS = { + 'player0': [2,2,2,2,2,2], + 'enemy0': [3,3,3,3,3,3], + 'organism0': [4,0,4,0,0,0,4,0,0,4,4,4], + 'box': [4,4,0,0,0,0], + 'diamond': [4,0,0,4,0,0] + }; + + + + +var Game = (function(canvas_id) { + var canvas = document.getElementById(canvas_id), + ctx = canvas.getContext('2d'), + + view = new Frame(new Cartesian(0,0), new Vector(canvas.width, canvas.height)), + + n_poly, r_poly, alpha_poly; + + + function Organism(cell_seq, x, y) { + this.cells = cell_seq; // Must be of length % n == 0. When big enough, cell sequence becomes a new cell. Cells expand recursively + this.o = new Cartesian(x, y); // Continuous. Fit to r_sim before simulation + + this.layers = cell_seq.length/world.n_cell;// find radius = f(length sequence) + //this.r = this.layers*world.r_cell; + } + + function loadWorld(w) { + n_poly = w.n_poly; + r_poly = w.r_poly; + alpha_poly = Math.PI / n_poly; + } + + function drawPolygon(N, R, phi, x, y, fill) { + var vertice = new Polar(R, phi - Math.PI / N), + dtheta = 2*Math.PI / N; + + ctx.fillStyle = fill; + ctx.beginPath(); + ctx.moveTo(x+vertice.x(), y+vertice.y()); + for (var i=0; i N*l) { + l++; + incr = 0; + c_0l = i; + dtheta = (2*Math.PI) / (l*N); + } + pol.theta = (i - c_0l)*dtheta + phi; + pol.r = Math.sqrt(3*Math.pow(R*l, 2) + Math.pow((l/2 - (i - c_0l) % l)*2*R, 2)); + + drawPolygon(N, R, phi, x+pol.x(), y+pol.y(), CELL_COL[seq[i]]); + } + } + + function getNeighbourhood(i, l, N) { + var X = []; + if (i == 0) { // origo is special + for (var _i=0; _i= 2 && nd[4] > 0) { // Inside of player + return 4 + } + else if (nd[4] == 2) { // rebirth rule + return 4 + } + else if (nd[1] > 2) { // wall rule + return 4 + } + else { + return 0 + } + } + + function cell_1_update(X) { + return 1 + } + + function cell_2_update(X) { + // player cell + var nd = neighbourDist(X); + if (nd[4] > 2 || nd[2] > 4) { + return 0 + } + else { + return 2 + } + } + + function cell_3_update(X) { + // enemy cell + var nd = neighbourDist(X); + if (nd[4] > 3 || nd[3] > 4) { + return 0 + } + else { + return 3 + } + } + + function cell_4_update(X) { + // conway live cells + var nd = neighbourDist(X); + if (nd[2] > 2 && nd[4] >= 2) { // Inside corner of player + return 2 + } + else if (nd[4] == 2){ + return 4 + } + else if (nd[1] > 2) { // wall rule + return 4 + } + else { + return 0 + } + } + + function cellNext(c, X) { + // Size of neighbourhood N is nxn where n is (r*2 + 1), r in {1,2,3...}: + // 3x3, 5x5, 7x7, ... + + switch (c) { + case 0: + return cell_0_update(X); + case 1: + return cell_1_update(X); + case 2: + return cell_2_update(X); + case 3: + return cell_3_update(X); + case 4: + return cell_4_update(X); + } + } + + function simulate(org, dt) { + var org_buf = [], + l = 0, + incr = 0, + X, + N = 6; + + X = neighbours(org, 0, l, N); + org_buf.push(cellNext(org[0], X)) + for (var i=1; i N*l) { + l++; + } + X = neighbours(org, i, l, N); + org_buf.push(cellNext(org[i], X)); + } + return org_buf; + } + + function drawOrganism(organism, depth) { + // recursive + return 0 + } + + function drawGrid() { + var o = view.center(), + o_polar = new Polar(o.r(),-o.theta()); + + o_polar.r = nearestMod0(o_polar.r, world.r_cell); // set r to fit nearest + o_polar.theta = nearestMod0(o_polar.theta, world.dtheta) + world.theta_cell;// set theta to nearest + + // Set relative to canvas + o.x = o_polar.x() - view.o.x; + o.y = o_polar.y() - view.o.y; + o_polar.r = 0; o_polar.theta = world.theta_cell; + var i = 0, + r_max = Math.sqrt(Math.pow(o.x, 2), Math.pow(o.y, 2)); // Upper left corner + + console.log(o); + console.log(o_polar.r); + console.log(r_max); + + console.log(o_polar.x()); + var dtheta; + while (o_polar.r < r_max) { + o_polar.r = Math.ceil(i/world.n_cell)*2*world.r_cell; + dtheta = 2*Math.PI/(Math.ceil(i/world.n_cell)*world.n_cell); + o_polar.theta = Math.ceil(i/world.n_cell)*world.n_cell*i + world.theta_cell; + drawPolygon(o_polar.x()+o.x, o_polar.y()+o.y, + world.r_cell, world.n_cell, 0, + '#bbb'); + i++; + } + } + + function update() { + // move and update physics; + // fit origo to tiles + // check for collision, merge and expand radius + // simulate + + // update camera + // load simulation frame from world config? + } + + return { + loadWorld: loadWorld, + testDraw: function() { + //drawGrid(); + + //drawPolygon(N, R, phi, x, y, fill) + drawPolygon(6, 10, 0, 40, 80, '#aaa'); + drawPolygon(6, 15, (2*Math.PI/6)/10, 100, 80, '#aaa', '#ddd', 0.4); + drawPolygon(3, 15, 0, 180, 80, '#aaa', '#ddd', 0.4); + drawPolygon(3, 15, 2*Math.PI/12, 240, 80, '#aaa', '#ddd', 0.4); + drawPolygon(8, 15, 0, 300, 80, '#aaa', '#ddd', 0.4); + + //drawPolySeq(seq, N, R, phi, x, y) + var n=6, px=10, phi=Math.PI/n; + drawPolySeq([2,2,3,3,3,2,4,2,2,1,2,2,2,3,2,2,2,2,2,2,3,4,1,1,1,1,2,2,2,2,2,3,3,3,2,2,2,4], n, px, phi, 101.5, 201.5); + drawPolySeq([2,2,3,3,3,2,4,2,2,1,2,2,2,3,2,2,2,2,2,2,3,4,1,1,1,1,2,2,2,2,2,3,3,3,2,2,2,4], n, px/2, phi, 301.5, 201.5); + + n=4; px=5; phi=Math.PI/n; + drawPolySeq([2,2,2,3,3,2,2,2,2,3,3,3,3,2,2,4,4,2,2,4,2,3,2,2,3,3,2], n, px, phi, 501.5, 201.5); + + }, + testLogic: function() { + var n=6,l=2,i=7;; + console.log('c_02 neighbourhood: (i=7)'); + X = getNeighbourhood(i, l, n); + console.log(X); + + i=1;l=1;n=6 + console.log('c_01 neighbourhood: (i=1)'); + X = getNeighbourhood(i, l, n); + console.log(X); + + i=22;l=3;n=6 + console.log('crown 1 l=3 neighbourhood (i=22):'); + X = getNeighbourhood(i, l, n); + console.log(X); + + i=34;l=3;n=6 + console.log('crown 5 l=3 neighbourhood (i=34):'); + X = getNeighbourhood(i, l, n); + console.log(X); + + i=8;l=2;n=6 + console.log('middle 1 l=2 neighbourhood (i=8):'); + X = getNeighbourhood(i, l, n); + console.log(X); + + i=60;l=4;n=6 + console.log('middle step layer 6 l=4 neighbourhood (i=60):'); + X = getNeighbourhood(i, l, n); + console.log(X); + + i=4;l=1;n=6 + console.log('crown 3 l=1 (i=4):'); + X = getNeighbourhood(i, l, n); + console.log(X); + + i=3;l=1;n=6 + console.log('crown 3 l=1 (i=3):'); + X = getNeighbourhood(i, l, n); + console.log(X); + + i=13;l=2;n=6 + console.log('crown 3 l=2 (i=13):'); + X = getNeighbourhood(i, l, n); + console.log(X); + + i=0;l=0;n=6 + console.log('center cell (i=0):'); + X = getNeighbourhood(i, l, n); + console.log(X); + }, + testSimulation: function() { + var n=6, px=10, phi=Math.PI/n, dt=1000, + player=[4,4,4,0,0,0,0,4,0,0,0,4,0,0,4,4,4,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2], + enemy1=[4,0,0,0,4,4,0,0,4,0,0,4,4,4,4,0,0,0,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3]; + enemy2=[4,4,4,0,4,4,0,0,4,0,0,4,4,4,4,0,0,0,4,4,0,0,0,0,4,4,4,0,0,4,4,0,0,4,4,0,0,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3]; + wallor=[1,0,1,0,1,0,4,4,4,0,1,0,1,0,1,0,0,4,4,4,4,4,0,0,0,4,4,4,0,0,4,4,0,0,4,4,4,0] + + drawPolySeq(player, n, px, phi, canvas.width*0.25, canvas.height*0.25); + drawPolySeq(enemy1, n, px, phi, canvas.width*0.75, canvas.height*0.75); + drawPolySeq(enemy2, n, px, phi, canvas.width*0.8, canvas.height*0.2); + drawPolySeq(wallor, n, px, phi, canvas.width*0.2, canvas.height*0.8); + setInterval(function (){ + player = simulate(player, dt); + enemy1 = simulate(enemy1, dt); + enemy2 = simulate(enemy2, dt); + wallor = simulate(wallor, dt); + ctx.clearRect(0, 0, canvas.width, canvas.height); + drawPolySeq(player, n, px, phi, canvas.width*0.25, canvas.height*0.25); + drawPolySeq(enemy1, n, px, phi, canvas.width*0.75, canvas.height*0.75); + drawPolySeq(enemy2, n, px, phi, canvas.width*0.8, canvas.height*0.2); + drawPolySeq(wallor, n, px, phi, canvas.width*0.2, canvas.height*0.8); + }, dt); + } + } +}); + + +// conway +// static rule + +// CELL MAP +/** +0: dead or empty tile +1: solid wall +2: skin cell (player) +3: skin cell (enemy) +4: living cell +4: + +**/ +var WORLD0 = { + "n_poly": 6, // Must be 3, 6, .. + "r_poly": 15, + "alpha_poly": 0, + "dtheta": 2*Math.PI / 6, + + "r_sim": 2000, + "o_f_init": new Cartesian(0, 0), + + "level": 0, + "config": [] // sequence of cell configs +}; + +var game = Game('board'); +//game.loadWorld(WORLD0); +//game.testDraw(); +//testLogic(); +game.testSimulation(); diff --git a/hex/recording.gif b/hex/recording.gif new file mode 100644 index 0000000000000000000000000000000000000000..a963d231be555d7a41754270e2bd60bd60a9af6d GIT binary patch literal 79542 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

YL^i6 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 z z;VQh|YN@Tk&*r|tnANdc*@TUaM2@s1<+Z_#>6Baf9a??XcLrAMro$QCAC=8gFtsrg z^*?3nb2RG*Vr~R=s=MFn-y$quFHG$S=`|>>$UCiJgu-D>sf79HO(B>(qW|FQFnwHG z>Uvqa=U6#LoLOSm-QunF@J#V^lA1Tx51!l(FV(;pSj^vFL_%6h zmen?8*O?Mo+EG|S)d$|4>Fea~vh0q1W*AZqj^m3ul)7Xg|HTkNY&uI;9|OZ8i*iw; zhLG#6G$o@N2hvul*&>UNe+pDwxyM$ra+{oAcw{7;t&+L&NBvLgq-5%7!u9u zVVDrAqCJ|68Ciyf^}q$x*oCI^DQX6zvF4Q?t6Hkpc`n)5TV-`@PSl6}iFcH-Jo}=2 zrL!5AmQzOixeOcoQgg8l8wLedYM@v{>+STEx$rAQCTC??6Ucifh*01rrKj<)Fm>Lk zU&0#@-9-7Z!hOjDi_1%OnN4B-DZTezrffQE+Y|D;jcQ8H7NQqw978fml!wWI`<3Lg z0ED6xv73;&i=?-Gj`Qn zJEOU795IxrZ9Ps+p-jUM9${3dXIKyUG~2p5O%E1kqpD1xU96$M>W-tVEalro5!CLS zCF~Ap9(pR_6X_CqDG~95j?OTS*X^Fhw`MlBY$kE0>233F?HxRh7$|CIngVEoc- zXut|nG-Qy6Xl62?Bh;3tc)V|22a%cC z-|TKa`GRDZsl!QKdcI0^v}TPu9XSSF-rQLEcs@gMFmq8;O5o7Tc%k#@;DgA;6ygB< zC9*@%{8qKW#D%d$_QiWdgjy>tGAFIwFY?}}&JAKt>&<7gwS$HEVyr%@c!7#loo1a_ z#=j{e^C=MrKoj82x$SmH0rhAaMAw(fUeLKO6QddY9P@Wc?_p_+;9{)|=~Rp3^5-2# zGyz(SmLA&h4yLz6!g^yGOz6zw)Tg8mVJVSa=f9#;N1zZkOrUehh#Ef|p9Ap@zh zfq2B-J4O3NlC@Ei&}?sF0(#Eid?tP`I%C*ENQWFRq9CSJdke~~dI%0jMEks7aj&T$ z#9lZMF&Np_1$2JYCmoOHAqP80SzY>C3@UCKXE7Sx;hJ2rTEl1B zb!Wa_x3>|u{^_?Xot_8QUMVAh1sqCw=lAQ37cth~NvSZ|k1#h=d{4UNO!a*X+$CGFjIu z?JJdOpFmSPun^dbCwpqfE-(7AZd3T9mn!}qU%H-)@uEF<6da1G1FD?6&0!5X_5<9_ zhl)a9E-v4&5dTj&&DhZ`2zBb!o6Db_sTXs_9kX`(ut6m- z*kbP9`g3jgg~MbFnxBj|Kl+l#6uZe)z~X&zSQgk_I-2ltoQuXBC8^Y_QG zbz$FScnsybqwBK(xnYdy3V;@9je5lx28}L0nyC)*9^pGc$@%Z zhJdRNOU%gm z)C0HkExZfr+aWf<;#Q1rwT#ztY{NIj5-YQKaodFDM|W(8Q&x`x=Jw+2YbC9}MK0|$ z8SN2TL#sAu(DRb}{ATYx=U~4s&P+M{{EPc!j+>&R?@5QT6kKvL9d~ULfX=&dN&NDs zn=`@vdscdID&1ka;&)<&;4J^|l`Z41zfqpCH_VZPJc+r&@&w}GZ9SdZGW=;`(%WKr z+Ty8%p-(n4hUdm(G>3e(4XD=DdrydJye(Rr|RB5Pj!&rv^Ga{6CTFj&^2qjOUIB+&wKBy`ApfS= zNe|g#UeGsQ0-3Qbtc`8P*fbqKow~~aUS4?w-l+Na(od2l&*w9k&S}hcr8c){AGmC> zAM|bTy6I7Y7yR0-S!iva$qfBtagXCnC=sF)hVztvYZCrp5oS|;<|6ox^`*|Y@6i>zy*3k8S5Lae&#|ml2sr3{AlRho?EeaTI5$c> zAM!dF#twQGlK2GkUJCZ)lat4}^IkR6))B)8zok0hGU~7#4_X87Oe)$(U!k;VQu9e zOk8`pMbmeSdH{>*w>gfMHEF({~wNXEqUYNABd1~?7WUe^H|8kD z0caS2fB~du06PM3E&iz&y8e2AZULAQfP(>u7C@T@a5Df&18_5d+zil{0UQjVM00cd zpJD+>8viL4kADG=0?;`CTLbVb08ayG$^bqFkeC6a3qZyIbc=s+8Nh`A{EB8x4L}P4 zIx>K^k*_EZSQdcY0azkEK0bi(0H_^+aiJNck*BB#NEd+SAs-3;uQk)#+jr3i2pE8{ z0oWJN-5nq?1K1aUMd*@dkQPvu`Da;dmjT6@K96|!ft>95pL2kQ zv2wbyyuDN`4+e~j{{lCLdVp~O=oUb61`sU(#{-Db0ImgKTx`cg{c|&l`ig+=3?N-} zc6a8-MEQUB2a+@y?ry&xetGA51C1L%y|53r1EhzF>uYUkDS&seyzyUm zhMu1OYg`NAW7Xdk&Pkz3)iwon4@dt?sfQA8RA^FBe zeny6XZt->UYqyyxU|#^T$5PfuAV71yv;cS)|1vaydI25i2OJC_LsPd|Uo~9iudkbG zVFqX$K#69*xCl@+Vzkt^`g;F=m>9qMZLp={2z(u-aZyk-Dvd_*dcRS@u^|8^hBacS z=%?oO?~Nl!$^Xm5VC@u$wHXtXa{KAB+L%=rN{wf`F-ABbVcN;AW^6~7l~QUu|9?v~ z((fg{TYLhZagYZnK(9{GSpHDWH%NQV0-c4@*6=a1U;E zvvf^yIFd^4&6oe55{)^caz;TA-5&;?MR^$nuZQRF@Ka^J-8g@(+ncZcE72t9)o_Q= z54L%H5x#Ih-3(R~AQ4DHT2wKLV}P=Bb#wqFno0PpZIReY$%vy9vKY808v=MwUvCB5 zl*+4PMCR=fgg)7LjH%KEQ!y&uqr&h}B^*tZyFjmWiBXYqb1}DpER9g=DCXT5(w9)P zFqDwi-Z=Ia<{}Aw?T0K~(`MUZ57yN3Ur8cpM?)w;iH4pSnx9SWgEh!(sf)GqV4kc7 zVzIKXiLu(xB*Kv%2xYz_p7%0~65L5MGJdeiw(tXQW;nJSGaAH#C3R^}o4=wVBFn(^ z047ESOd!NQa!WUmh%8hBTJ!hdO9Fr8ER~xO!yr{mv+hJz)MMp%OdRfQdny_Q&2|3T7Bz z>$oyLGm!T{_yX3Zm+i9W7&qKP!61xx4m`|DUEA&-q&+_Xn=J@4u!mQDH8esRQ2!A< zg8k13)@iKk0B%A4+hO+B4x&-+H`H9M=cyW;lmdtO*ZoY=1mR=MKL8U$_NC#n55Z}z zre@_YQd9XmO~>@6M>L6>MZFIYB|)u4+&{4WMCfv#-miS!7!>Uv;aY^&=H0Hj$PFZ+ zYx%zO`cy@9CqHtl4IM#)w;N}tYZp;Hg@JKpsuhrOUP;YjL6B5frm`H<3mw%KX0vR1 zokJ7YjgRi~$&CETu9oj!*;%5CgWa?S@P=5GZC{qL-k(Hj_y0sLv9z;ddxJt{YnJ2A zTKu(uyuEL%<^Au*y+~iPaS3rWyH4_6aYbueJS8@@EeICtk22fvi|4--hXrOry}~7+ zLPNoG-~CVnk>GDfhfwDgWYZlNX~mGwIyb5Gu#APK=q#WAehfpv5V#D*S@?`V*Dp@M zHxY=GupyN}z>L6{;tTE_BomP6!~2LsjIUH=xo}8vmst(NonVepRQ6rMRV7Lw0rq9Y zqv-R#OBA-E;u|QZLeS{pNhca$}BHk8(q%DCW09lxI zgfM(u8F*KT=FPefHQV}Y-4$>$_rG?MRp!2!T zlMCp@9T|nHCiY-hOR)7w!?i0ei`3AGfyn00ixozN6}-L`Dh^8uWxAzIps1dC?JttiOyE*^!@pxBg}vof z^!XaYb{Ot$+chqcRn#a_!=R+amJzv=$+m>9H z${b9KD~*3Ya#bntS$gH8n0L#EnNjd3Z|xOJgyG6h=`=Qsv4=bPShS8`j8)dXP*~X* zj>JQa_mC?C%DH`d47q~T(=7LDxPu&&8o%77kx@&V4@l~+3cauL8MK?B5X5yuxP`Od zc0!738>44c#~gTJ6ts3RQtYy1ElsaA=zs*~wOXg9!K>mSF9A``(l!G(sM5~XS6 zO_a!7_l7S8Ib+Y+Td$LahUuyQwo$hXaUb|!!&Nn12#ydh(hMQ?BnBEM)nly`6 ziT(~vRAy&XEvS(SeJ-`OdXkHY1EjDxEO#A(YJNrq z@tU>^fy1!0Njnc^(lgC(#596Sx43)p(~s|*QloD_RHdIUl3$ZKKe8yLmR8wXN-wWv z^NnC*xo$|8z;f{ zlAUS4b&d}WN28$_-ctzJtPI?0AKGZ(w^Rg`zAWb1UYF|i8Zdy>yD6;kvY+=Dp~C}M zSspY>0;K!QUmG*SPv+ygot)EHWruqq^Wx{v1x{0E61LA<=Fi(l!r=C~%vzy`S(IbN zrBIoM4f)RE$on3+ymX;F40-DQ>1B~Smd)5kpNXpM z|3)KaA+KlBYozD;m|4B#(8LE6lXgBHQN7(*^K7N+^lxJsQqO{7y}Y;Ea<&A8-;}Bn zPC59#Uuyl-8$Y##?LAEZgG5vmi)qEA`BevRU-$&!8ax{8lq}bqvPNs)-n8POq|`hAKf4Aqh4?b5VO&WOYqoJWCy+1djNArv`%* zp4cZ9xg(YREwmEZ+-TVw8(w7z6k$dZC0_>dB#u&)af-Y(*LYwg%%FZPwztLekRrD6 zmWwi3@f?Wq_HDzl^>J_*i5i#_$K;0LR*Q-9iBZ#xM!Rz5Yqk)9W~+*gpc^3h>#vvz zAG*tyN7Cf|JaONkfLAc~DSw0UO=BzIrMCK(Kqb z3HyA+`0jyno({<^f^k-xe=#GZB#H(8K>>CTG=vq31S%dN z4|j{qiT0lX2Wn{t!NJ0_-v`YO2hHjRmsusoe+d?33Op=NB9x#B>i+;U95-%b3NL|J zMVB;5679UiDlEP7ErB-lsaxDWxnXbF-xLH796C zq=tt3s8CCAr>K~DhWoC>`Dpt@NBamJGad~1ENpWVp^BG{L|Rfyl$OMjt=N8uPJ<&b zgy=;f7pY_Jd3|`F*+=Vr!YE;vg)>l|>60ypAo=mq@?(5?jMrh7^D*<+R(!)@WF!b9 zAn%5Lk+k_9{bZ3fpAlDu;*(CA-Tf{=q{y8wBP}UQdb&kaKPuv@4@{_9E^HYvsF~H# z3m%G&oLxkbQ_F1>%+oW=(QtDmX~ieIPdl}?kEG8~q(xG`CuKSE)5bwOxy-Jgm*37# z<<(EmDaKMa3qg8->o?0&cl)r_@Bz8UWpKplbF9}s^qoM#Pg}VXx5{JC?TQQD&)~=i z)CXQPg6IOFG$-E%r?^pam2Cqx_|)sR#Lrim{6}%1CZt8%q~K^9+??d2k&MVDq=!As zJK4|lyAF}Ak_(VGP9e#szR7=3oG@5Jn6$$h4?un_pJaY!Xf}mCEMQZ~7s2A$`@Xe@ z86)gai{CsZ9_df%cq`|fsfywQ!}Lg8hnT#5FZKm;S= z4f%Ua+?H0n(%>6U1Uk7FO(*$uVWXLu6KfEox7@6!sz7by#f`JALXM~zK%G;bQz(Y; zG1*6B<`738?TcSb7Wynk>7bVrE47pt_Zm?-KhzcoLT7ojeFYI`L9s7GB-w81sYY^sO zY&%iO?_8?NW&@5{1BTW79s~V2j|v$1LfH~{u^3%SgSeVia(qKR)rSyzzk1j|dgZMR z!3~+s%c19om6!?*QrbGRgQbQI#hp1{%AgVPeje4d_#63FH7=Px2h=JH9E2HSzvTGZqJB%q1>Qt_?kS zvmd0n`v*n%cYKrij!;^$ap|Tl{*)o8zKnEpWhDJK_$I}NTuN!S6z#}w{#uEPc@){- z@iFqcWB~d4BzMePgV;f#Wjv9ws+7`D|BYhURUQTEF~KHr!-T^(xV6S-vM;YWh0rlV z*waq4xoG4O4CDZcOCPQ>&0ZcwY3!#S8rBK~nA&ZYlC&Q!M!g{y6(T2NwHK?s6`_eL zMW7y^+9RPtiigr6q2Lx|aTTusbG*62@vTVRoPU=Vx9E+#r1JWR0QQp7UXFLtW+%c3=t5- zF#m}fWGl}xs0_zY2}JXBmWxn^J{4rLji5@FL#?m_)`wlt9FxE!sd1w<<4k6cmdiMq z^f&Uxj?xnEbM@6x%Jav{l_Z`Cg9ASXrgumo|B~_+5oR4y@A#hEi&R1((qFX~JE~AO zy{1SthM`pHph7mD0y`)o8U991bP1n+1%Igj%u^2dbEJQiuHC!4I%*HC2TNptuu+ly zQJM4c%h)rKzy!Yi09%(kL(ezYcJ!{C>q(;>@l_)kBn7Pn7WpH=UPts!p%M8g{W6?K zWxU*}uUEYyt~ICCcp51ve-g5MNhV~-qz`k{I31Lpp1bculdma4;-CA92|r&~%p|Aw zi0lN$;IZ6G34WCAx_LG!hO&PWiOG*H#gb$gU5%gYyXn8~M=N2+nfo~nvMOLsB%_fJ z5J(+bdE(Rls)^-sDC{&) zC(ASPa9YhIP%q^}ojP4e@vkjv(rUivJ*7MSUBM>&nKjXlp#Bpn;%AOAHB~q*wPib3 z$tbG&JWH$(HnCP{)iQqnGQ}XAWqS_a+A{aT>iE?vY8tnWuVmZA5GHvlN6w=5*AYym zuiGR`Q0w)fw>-=mTpmzd?i}Z?p zv;kfH{*4P^Fnc~QL1qi)H`A@;i?7Udm4-9SabtdJhQ5vXd z>F29j-M3Frs3pUGA@Jy<`r^d|uKdL>v}yT?d3!JXGsf7Lv&>TV_3?_r%IdLd_WeY? zgYsG7-_;C8Y1AfA+6335z7=!E=!YZjdNzBvXy33A@}WhqbsP-#rqKMounUqIib*;N zdJru?;=p&z9eQdikg2UV7H5yc=ts<(BA=(9tarzw=Cq|)vPNcf{C{XyPCO8HPC34u zxWD4GoCiH1jy*N+P??NtMxKtj9!)h+ll`H_o!dzi!y$D$$Lym?#{zkSu>Fi0ZZ6m5 z{L;<#jLoKw_g+H|H>>ArDLfkwE@|F`G#pxqmMQ~2K`8(UM!n>Ksijp6r6Qov7{ZsHU@$85g|gmJhZ|2nwMBz}Xk zF#tE2#q*hh$b>YjsQ%`M@Klg=q}NWC`KCgXCN`hn8Kn=3u2CpxKb-cCLjlAkc01&{ zb#FoJvqRzkwl0g2q(PD}nr2&8#(#E38=E0N+a%%Qhk|tTv33`w1@(h+yG#?x{lV-t z1efrL!CtqaTIv&%`3{8@4MI%xpE`;hJ2o7|YKK&TvLHSm4bHzuMcjv4cub+RTvwGE z^U^}VXF9G|BwFPCR~#}UC#=+)yTeCe+BN;cs#$z)&cv1;S-CBDwp?I(1f$36H8!(K}E-KSC8aul?_>uQZVHR_YdrZr*{8RM;EluSp7%4Tkv z{qiQ})6z}^o2|_k|A#9~CfcADaPlwY_LWP=V)S9!!f|k%OoH2JjcFJvdmXoRV+mI_ z`{*{p4?XG9H9WFL|G49H~ytx#s-fZi! zLTnWI6U#n)EDWWO>Ff45GW6+MZt{$RQc-~OLRumSE4oJ8Er}qAPD+|cCY#LMN5G>b z3i@7xNa0x?O=GmQy{#;;GZ0zi=K;P>;~J*;Ho^FGbFC`jTP%$#h0Z|`5+|SuZ78H> zwM2oDrYohZpv3Ck)lho77>3JByg<_$$BpBur9s+0sR?ST=bcybM!C_}v&_7$ZzN){ zW!r2~y#Apk&ygu|EkbCeV-e4Hw^C}~Ot`$E*6+&4zmdQ*C5WBPF$qff&%}t;_RyE} zrbCu%XWYXrd&9I>HC!-~Q)KA#EA#y*M`gy@*k(|hVr{0LU&=-*eF^Gz#uT-qNd&$Q zi2%X*WQ^>V5gP}|<$xt~_Huo^lX;Tx9ZAE>GRzmeypoMVP4ZdWqaTn*LATm-|hkfJ<*| z0Y2_|A=-eePI7OGpEI;s9pm)aS>y}DJj(&@TXWYQqEphufgb&hKqq`oQ#bIIGnhkA&&Ovk-R5yUYfk&s_ej{;-N3%M_4Uy= z6{!83{kVVizw9Rt4)`#W{4aFHoX!fLM}mJb(m-)RWvxEGf?c z6XQTV*?$ix(LBgWAZet8(?e)5eZew}8maLR2p#2LFc_qfmR{)RI{#7(X(#-Cs zw|<-Gs{~=x%o&GR^A!A5vIR_x`4Vfs8ee5csI_L^8en1oB^s9~&3vGjEja0`;!&nq za0&rTjK3;ALzrQ+*dN80u|F zh>w*5wiqj^K?33z_%s7}TN?PrzD#I6*cD3~_fK>KGXWijQ_mafAI!j_C$rR1LJa{8 zaumTrp*2iC1%Wvmf*Pm^WFD^nkpVRc!NUzXWq{Hw51v293x2Lg(lyb+h(LL#6=)CVR)x2h$kaTPA z_JHK5YHtFwr`!Fv;N(jeO?1D--WL>xV|`XwgcU5GZuF(!Xal*(<5a*evcyYysP6(S zY*EWg?|CuF^G@7Ni@0MCH%L!N?J&0uwWPBuTD-#yHs-dOoKPyRxo3J4#zFHI2R4P4Zl9u3&Cf|8>yH~i}dE}$2xYv^e z)jAyxFiUe`H0oj`E0O)D)ZARlYI{?7|85L@_Bx&)r{T8R^SxBo4R7K0kZkYR^D%EK zsyNPQ6rUU|Slndj0?*A_gy_C1*O=KQI7t>iE@P$e=0%!ad`FX9cu#(*w!kr=V6%rs zSzBcTd}Hy4r&zzgXoVW?u;W(q8h9gD6Hpuw2t6E4Y{oUO+@6PWk zraCKwL2mrXSsU&)-t2*08gjA{Curp{t86$hJwRQCP{MDhbo1ux8u>+Fog2G$?UyJ1 zu1id76cjuc-w7Kk1W;B-Pt8OM+%FMvA?&t8ai~K7V;eQz@tuxRTNRQYHXza;M6MH!zr6YSF?~{W_WRUl`T-HeQ4p5{ZQzVFSLt0cH5vI4Ja?#q*3j5$Y;4G^8-aq$= zKX>i?LYjU+;Gz>(ix@P!?pAI`o9;nkbRV4e4`*d>hX;p}DRqq+4#f2!O@rep*98!p z8ez}qHMwC4eZM~nhcKl`vn&je<%`}qbWT+XPIE`vu!|aHfZm*y)HZ^q>)UJznix|0 z5pcrCgnP(KLOdZoo~Ld38f-`5AdmRB)Ey=4p*6vZQnbax2ogix;eEaHQuGsjVTJ@O zKf9rJ^l=^wvWjlFD}C_g!g2hN5uN9j1o}AdrxBwba1zGI#}fKrqmN#N&8a2BX(Gev z6meeJJS$)sos;%4SAAqt6|9^JtD3ah@@9l9sT70dUY9 z2gPXj5)NVX0Ko}yN15|HnJ6AvS4hjucnl{w8hl9T4gtKM5!~U6_U}mxvB>km|FhY8HrPwo6 zW9dO=moTq;s^lY4U$|l5UEoSq6rwspYk5cWMd)dckk}s7a9(Dd%|xFDMlr4AH|Jrn zG1YO-qf!XaP)lcu>(!zr)bImGrB2j{oYe6|XNLyViz7gU8|t`$vxVF+5A?aPh#k1R zphu4}hJD0cjB%O1X`~HRsEld_1cnY{43&6^>de9>))EU)LlgJZX>&{Q>8r9WY+T}gK9 zx#M^s=7a!kj(x~7Uut1*0cT)p(Wqo8A!#{72`t(I0qxd;`wBVo(6#7aDdGYu5tcxTu>Gz2NaH{)TV>Jw6?=ClcO zMpbTRKgTSZ8wszxgSD*Di|WuzoLJdjr%xWxrCS^ci&#V-R4W0?2N;i*OAn@IDukBG zkuH{mH)Td>OebH`?8s7a1@^5|ucF@Y_)K_3lN&CyaqAha8&vE0o_`&o6zL7=kBRgncXb1xNqf zL3Z-&Cx3abn;pGL28L;g@=>+uN9FkrSwZUz44VP1C^dugcm+)gDYY8y+5md>3=EAM zCC>9jM5RR>BW;&-+0nwmB9w(?axDpw1vduW3Lr5xA)~A{0A15wKBVYsPVD^AB%^e* zp`4(mM%edjeAts$S)VXuH?iBpv*aysFKA&ouxUPoZhc~Y9(F+bT()0~cb-0Q1lDuo zcj8=}8Dil%eSPyJ``H`=;{4y+&aW}*;shh4J3pQFOL9sTsS7k%t32392{A}F@N9%JC(#mg$JM^AN}L=?&bTfI4x*gQUGubIE$ zjAzM>FbXw~!Q-vTqU?@Ce|Ne1u99&iQ_Bv0pstlj2y{|u$unIi4_AC)P=}LomjJW7 z`k|`GCG4HoZegb7=&xm*j!_vnu^OB%&M8G9G02!hSM_#zqs&~KSPc;*mzki;I0()6F&6wYM%)=Wgg8W3-NZVDBtU4(zUaJa;FAfalr6nwrB|HofY|zIU<$-$%wVnrnNe{;>4xh}>ko1#al=0n#ld`St%gh}vdgTaB$(>3X$1AGH4-vc6U5U`#m(VNhtXxaX4xm66K*#6Ij-Fo8_TkR4yeiYlModh-hu38yud`I8` z_fX6bTAUvQ#WQHvi*r|o(@avzF$~3`;lZH>23%Epmc3>`Xva=Z<;Wlw5=CK%W#Yt$ zV;gC_gThIV2a?2uG{5&+H7h$K5IYs_VulibZ2rz`LXRF~Uu$A3NrAS{ zi5vNCy9mem07({;!yy~vIDhV&)Dw?2NRamELJa;yBrk4Z3AA*v9Y(cz$h)nQwvuna z6%fMnPMGK3`P=*A-*3}-gm`{8Cpa>FI&0XpIIE=xoewgP$FZQB48LoPE3Wg(jC1Zd z1y7yAdY>LF(Fv^8Rr>1qd1z6^esOfB{)6)#7W@oO|G+qXL(EitUwKH@-F`OzG5Q;R^}hXZ zfqI1W{V9B_glz6N-|8#Mk373L+G@U-Pjovilw3uja3gdZas3AF8~ z(qr!(hTOdsc=!;byVUo9yKadiYUL#H5xp|7Vqr!_P8 zXpq|7p5Oh=mP4*eX_6Sa?L2?@HaqS#n(-1Qv*{rVvMZeK9^Yp%<)IkF!?QYSC*;qX zTPs(Z7gt2cPT@MGhm0sGH@BNX)`!=LZ}0XA--r=;Uuo|;g@Z>tlWS7#RukGrHq9(d zTQ2>(y-uweX89XZ9Nfd1tG>lyK|{_knXx>*rp$L34mJ85(e=gz>nfi^ena4~=m)oN zHqG?KA9gx_>%vu*(y|uYyN#;ZmiqZx*|Khd&AdN)bST{i{I1Aj{S#4ZQ~1GdbLKCY z%M(@S(O}gBGh=&uZG| z8p`m2ICKapRWYgim#Ft|B_A`3yRdC`df2^Blt&vas&Vv;i(@?ue;-w9oIiUr9)s`} zv2~W1o`3G5%zRxONEE+_KObL}`)M<1{8!jrzAkVOJ7|N!y770Qr1pB;_KwK8FP2tN zak;;e3AnA%B=fM>Z{wofHV@!RoS#i73qKCYyxM#trU*&{66avnIE7}6J zYhs)>4;(KJUW4O8U|?weBEUfYTiSO5_-O)?*>Tf{~^Ai*H-}U4dC1V zK=0Yv+5g$t2MF$uD$4&rZvfl|C~tt~1`uz6?*<5NU{oIH{o!`;T^jA_u5&U|RoRe-A*m0o)tF z#sS>B+s7Li)dvu402l{AZ(wZyAM1U5d<5X$0O-BDv;4A|Q*S}OveZ(xldAin?M-T>V=Y03i+l;8v;D1sw&zkTd{*hc$-%W55AG z8(_MDrTwo_5yev_zzF|8=o=uu*O%sj75%?E+ofvC0Pby?Z3ckVraqd(=uRZg;4(<+u zGJ}>*mVmu|e*^uPhM2Ipuz&RTm%%Tm&EEj}8$iFk6MO*f8yMRk-<}xu^8o;G%OFbt z^ajvxfcws!&jDa?fbXsttpKp@{~6d1?Fp-cSl$l~09f~EZ+B+%M_`s87}$4>b^&m2 z0PzL}_S^OJuDUuJI~xBD>^G;U0(>_xun)}aZ!|R)`Fj5u9s(%usgc2dWBZvkng2id z?&9HOq+?MM`80Z7Y&B|Xz0t-}MTE8p3|@(EWs^B=CMS-lgYYB&dug9l6l`~>AS$0v zvP(yAdp!0&wA_W%g0;EGTww>KTnmq$CpQ_R-&5tVmDws(h-Tk$q1giQFQLjS(Hr%EC9D|G@a)(*Eyl z9xN#8Tar+Gp2T;v#_Gb4PN8g-!jlUl33rzd*QZ-sqPmHH*k1k&iO~?)7KZMs&3y7V zVBt;?KnArnZ9f@sCO}$2{EcaG|5j3}otAA8*G>S_9EF zj0l#pY(k=(y&T&zQVM#V8N^Ya{Q}|%SbBQ1!vY_yM(Q~KE}JbcdnDGQLYJ4>GEJT5 z*%4P?2Jaq1ACR97eBkOGML3ohO-V$4iD336s^*EZj4;s{!7-Q?3kj2*7vaF2~lF_(|Q=HxOhw{&AuB`fS_o$~vpo z@QrH+2CwY zse%VwwMETM72TU{iFrs?ppG!Fn)cYDRm@r=J_E4GYM z`zr7B<5BXS2)X)hhJxOI=Fh5qxhMpHo_e|| z{ef91STC;ityLP`;pW#UG9}FDLe?AK#n(^xuF})d(>VRcuVAqRNj)>@%R^orRP87j zTz_}rzjfE%*R}2hCiZU&fg^5{Fh2VoD$!u#Ti+Uf)ce8w;s>>IF0vpV#&$S0!VXFs zZ?S|&2n@55IU0OwD3R11Uur=^`y2$Q1-Q<}np{A0)fr$LFEg?#V+DzfNID3{SM2Z|1h7Fcdz z!_s)<3(k)oB(7C;+FgyzoMe(T0X&(O%P@!^LS*MYR$G`Y z%o~-M9Q&kqKGaggL;Wt^#;k-+E*6JRVv@zB7{UNsp>Vi^gXR8Y1jDZtMI7K3!^I5G z;%%4WepyXVu|N*P_4og&?k=C=h88w}TqCYj+ZTv7FlV)M*rjOuR?mG`T8>@wQ3 zFx~SY)>BwLy8OTX?HBH2)JWw0n6(3X(H|~FOU@g zc~^mrurPC`wLi0uS~%Xrj>_-LD7(63K9I+9FG(Uqj4b7QA2SIR31YBQ`vkVeZ>=nY zCg@u=vdg&jXHk9-90ot+aOoqdwfWDmp;?n~!8lPY^n(>3whT^*4V1Zd6HlntzHDr? z?ymb04l5mY~tSwQVO z;VVa+k(5F5gx&6dvcYOjL(Z+GuT~gS&!)mNC`<(tt~ne8AQ75X>8*-WoRZ!vx*bX! zgikkMERk?Bb`K*p@`~P!zu_OXBZXES(!ve54e^<~zU88Qi$W)$LXGN(w|&vVt&m`N z`^|u(!B{a+DB*St`Lg%@%Mlf~#OGpTLkWL&>(F?rQMTHV11vv()O2^rfQ278o;iM~ zWPe)Y!1enX)a9WDtMlnA@A13dm3A3 z(XD|NAP&aADCE83>6OGI=VqLBT<%H7Y-KDhNqVxmQCJ1F!`R{R=auh@9#)%y2Z>2c zmQ4eE4hj;|lMAED%HnSMGjEZ+BU$92h%f!|8ew>4nR`S&(|5xX=!VT7txR(*oSaM> za08OKZX5E$P3&CPla3HCsiKqR?I!}wIOdg-Sk5 z48Qn1=h_Sr>*np0Hugr$$G>N0A9sf4@A?+q%p1Z=s-_A_UB8%Vs})~7N(a`|_pPZN5mQ~y3YBF_B_V|NLzn15c*O2bKaA8xlMQMxntSQ!(A?;ptx051G#Dx> zzJhg=3|#p_qwu44Rv(G2d4imiuV3kTfP7|f+uLrb2Y5rC2g@dF;p1}ObMJz^xchUl zP)va(mv$Qz@8BY=i~P|^@OU^jYw$4}9D>bi+DFw*%{ZTwmaPXR>nnd%JI$^+9(=pa z%#v$EaeblP_SN>f>h1p!b2<0tMc*wxUa!ot_G-j$-Q{YcFpc6|OAdZVlze2KqoZr1FV0urwlmOR1&$$0Lt8 zH-3&IT^5I_5R2iVe_y%|^&oJHhx?aIf_NJUx(X5`jCU7^=dq1PEsw9tF)sp9mB>4- z&?gLSI5|RaJ`3>Io_ky5nON2OJJm)f_$jyb+Q|FHL9^rf{HcN&T_*2h8glK(_Cvh1 zKyl~Nk_S<5S+?)VO)jtK%~)3MaXX_!Idw+kJpJSsjhHoD5&fw^gFFYXqnM%33F74u z;&gUAPakmUBb%!owniNUAd&O5hWGwdT=E3my{RvG)B?3^LQ`@M(SRogIT+uF7?|)I zISaU_Krp?%u3abwaXQiOa8|#Fl2~9?9>XWpG;yd!NU66ookPZ+zZ(&8=oVZ`a;Ede zSqAZPDCl>ntzG(j9B>|#QIZ2_&z0>&wl}U#2kW_zkTAV%2teZA!FAR@ScSE=VD5nQ zMuZR)nvgJig$y}uDcay`_{6*R0DQf)NTgtCfM$w(&VhxZ<7y^fWlk$^QoUx9ogTmi z*&i(ni-#XBnLiSx%P^T=>eHED3WwxTQv7TQn@7wgFfC$;APS7^H&bKe$%0aFW7#S$^#e3x3uK&4kq%Y68JQwOO>F1Z< z!&C&!2o^rb*{o9cURURlD`+tQXpbP6Lpe*16-v5WHDkXj^7cio+M*vCl$A0yjf;M*1LW?T$><<{4R;IsQ^YTz^O}#L!&ye~0GG>I`V8y#=NZqs zP3}A|52>J}IU}NUU-=`l9{;AU+iE7f1;+e6DjGxi9O|J(ZNUDWvh@#P?daAITQ;xqRf@rU?Ve(L}Oyb zFo;xsQaHNFRR|=_rYHP$SV}L?W0FwD*B>S4p`}|O`*A8gV#;_HCBQr<^29sZ3XR<7 z50%eBY!D%L$XcZXDhODfd9o6g0M&!tMk$8F%{KV#FJm5lqOBW(My_?rfn#nn${3&g zQj5`%E${<(A4kp~qyo;z;r%L&B^i2xh?W0B#x5lJiBPQrR5*=VX!!>}uwEndN1;8B z6&^4Vg)88MH?>2E6l2X?SHKOkt@L|s!xw*x!`=jsEoUNGhUGs0WPX@bhB_|%Pqm!+ z6h2-jfW{d|(uZY`LD9UO^eu$EI*@EJ4b2{~PVn z-Kg2U(t@GArhK$;r3+11St|a};I^#LNsY8qca~&8jLGGQkt~U%u|E17>H4rw zRihP7nucv#u>do)jQ;x$I3>3xM}|D6tUdfXm~+Riz|P@x-8$q@?)n(j04L3}_rRS7 z4GWVKv%N_jGZ~4I7Oe-$bM!m_Q&_S4bGf$4s7l?ad`=`UrRt^JMQey)8?^S?=xeUecE zO*{R?nKMayi&jnB{fJwA&r5|{`F=e=iW^8{=SC2x!2{FV7{)6tw9j=lPc*6x3WwPP zv*3X_iR6*L6m9_n$WYv(uLezW9w-}ygU0&{+`eBLk{=v)s*6of=A+O!3Apo+85SVwi0}T7Kf7ofbTEjmU*>k0!gpk!I*~vW- zp-=EB#Yny{qX8!GZ&yK~?8-nm-Bg;J;BNwjPuvEmQF zFMjY!Pq!M$m|0!~KYE5>VfP(TA3bU3cm7Usn@+PLV$ME%OYaCSp$Zo?t?DgYM1LbP zrBO6e56T9%4XA;OMXm>&ia{ttk1R;tp!LHnOXxRa1UG`#M#7SgVk%gg!- zLD&Ym?A+)sW2JD^ARi3judWuUsva=~B4f5c6;*x)10xz4?DBgrn`%h%PXl2-_!tqF zHMchsu0K_5dVwmQTP9e>I)hqd+a{_$&(1s-A8Z$59LxyRG|m(Ozyic&{$B>xhTp(u zG9L9O;~@yWUfOzb|G;zmPB^WBKJ7yDjvDh8+D=DGW4i@2j$-qqUl9+Zu)539d3r0q-`~+L^44Vr)hNX>0k*o#t zXI>XT_5gnFfKbyn+7>HU5z+v~pOC3f%YylpJ=z%TQ;0IfQdExpm0wpTJP{=|h53Fe z%NedZr%zs6+UU*U>B69zs?6D8$m_@e2ye=JR@Nw<6zs1i3o({VV=H>9D*OitEe7zd zf?@ct)?+grdqg%YL&!?W0k9Wk#1ds9*%+i<3&?1o$hj13ttB|v5iHX3>^VZ)x?t0` zC608(CKsknp2mhozyWIM$=BBKY7II5(c!uBKti!=hn-`l(jJ%1noj(os|ER_oW+i1 zR_N>QZWA$L+#-w6TqLFmw>o#b$!_XxJ^=ximxA@JOMg_GJUcL^;c?*nCrJ^azZ%U*$q>Q^Tgs& zx`I@k?V^y7+ z4n~TuoH0Qq*MC@^oOeJeZiLXh|i48c`S9RdSK7UcWTPzKJ zK4JriX_sp0VP8r8y-S5<*eLl>Ann!lf_Hz*;5ZObq3!M2xsy1b(p@7}j%@EOVR1a|*or_dR#{WJ)~ zUTHQ#pMwXWkntbl!Tmnh0QVldMjswDu2T{sVAKCgQ^~EC1h+0tBiJ7naOByGVhDaZ z8qVi+JKfp5vs*0Z=b$v%y3gqiBKq^(%d7Blm9z(hG&3CoJt=5({Yk&P-SaCh#RI!I zIQ-G=xI1paT6X){>wKwNttM1gj^k$=u4lc|`n?~hsFP(yDa!*$>eSiRz{o?Qmck%)QH9Va6mLESUy^1e zqEb!krQZIe zYyuuoX8y!cV+BJn$8b9EI|$kCj?;wjGn15M@O7ZxOC4{m)O=cu;pd4PLr*ZYTAJIJ zsphW#6c#`6)wwar$^?8JhZF?L17s0)kF|soExmOOow^=iDVIJW&8}m=SD#=EQHI~jj@hnnMh{NbzC!wMCTLeXN0WUrvoK^OMTlIIPZEd@7L6v z{Zqf_f0X=JX<;bvMk$^y$GiNO_@Diw-lHfZ-)Eb-tVK)P0tY0RDt|_2ozzkA%)$rb!I!AqUL1(R-|)K z?|$32zDQriK7^ITz&i>jJ1z_V0Dw|;E2DVfz58wszi=t8Ifqfo7^_iY;=jJT;GopzAOC-Sw|+#f&3w`86$uBQ z#<2?6x$5BGeYgJD>Q`D%yLaDhRg;*0>w-=1_3pdnduysy9R2<$efP6kIFfc5Je|EH zW}tfXd(%F;jlDF*%X`zlb_IU5y)4^%)4r{CCE1C++Z;wr! zaHh8ru!rJds(<51(r*w9e?#~~-shXE|8UUWmF*P8@`hBM zjFO%K(PQ=ux#wckG-O}YLs7jc2&by4PK0tDmu+B@epZVhVd1#za3@{^{5X#BMp+}3 zEbi>}*&Fj$;;=apHi(HJE4Wfoj~VFHSGw#Ei4yFNtvlC^#6tNmEkI_;sx8OkZroZ( z@+3YJg*XGMJG6a~VsD=k<%=&Sb?_JkWUYWU@iW%Zd&Xp-!_bdH0?!J^h@w515Zm4g z(aDy(a4rV1O(%+FbtGbA_6C->r*AG)&`bB{A~Gq0;bO!!ycjF&S$`7@wU)&_4Bt%} z!AhTN&IocDGTXV-BMHlNlZlu&;VwC?#7ZT-57xi!qnP6(Om2 z!@li-XxmoeK1JYx0vlp{ijB%U<>PYU`PKOBlV4Ub6UHg$Ow_E8u&b`4>z$^PEM)ra z)8eEzQI#<-nno-eqoOm_H6qM~@U6hI0^4tV=Ur;T4{B?Yl0G=5%F33dD7ueM+r$eT zd=CxsyYM$S(LtiH==_SibQNxWcfRtQD8W)_1HQw0kop?=8`D#Y2+ChJQ}Hz@G8f6- z!H>niqc{fA;+3Cj3qWab##n=hvAZPyjE#*9LkV$436=jS=WT@tR6dETl zu`2QD$G#|L{%~5EboroSQ=SdhPzWHQ9WETYY3C2U$9X|X+T;7p?+l>vI~5Y$STi5n7@g#Ys=!8 zk4s`OPdE)E=k?ryW#wieeD~wB2r`TK1L^>vxiv%+p}yyCfQn0saX?sQK!zVxxP-{ReE`_#)yh6lh%$G>{PF z-EWm8M=?9egCQRQU=HVr$7>u6JDvzdkamquz(_(%HyU?q1V%c`du7Q(4F{$u?$B1tMt85p1)6=beZq}{pXFB3pJ99`I& z>OE!?&EzS77b~C`OB`hou8@$Vpy#b9UWE8bdb%1Uhw3bOj4D6-Y5Lk zR-qR1@%A100)VVK2vhKDQj{~;C`q)iaIoxts>gdIcRGFJ22p}@rvF}kSX)-_K4wE6 zucuSGGih|Dqi>c*CdIipO# za`v-mLf`TM`YH{JQ_C__u!}ISI}5Mc$lEh>yT>X6K~u1KgKOR@J_vQTMJ@0v@`*b_ zN6v~~v*PGWzzmRF^!qf&Mhx7!I`*qNa0I-2EZhg^32qoq;`y4a39q?Gat#7{0_0I+ zRBrEJZhPl*8`TiT$8?|6KVGTp6PF_CE2lXrQ|ky|VnR|hRnaZd{<2Qa2G23t45789 z9qg#qdP|e#MSXl-LV)3KDI64#5NdTAFW+H&*y;XVpb6cv)?&IE{%|jLGp1?O2$Vcu zX2&dm-%@ z(!dTD!qUmAC7}tdK9OVWYK#Ogf0JG%mL2(-*?T85fgu{Jc(qJl))ze{D6paOQDBtB zWg*$K$7ECNy*t8GbQQiy<8d3^>8U4Ue?Ed-{$t)MdvXkvR$WedXqP-XAXqJRG=^&g z)*VyN9W$a^L>D-o=yj}v95W$~uje-&qldUEe5~&9x`Z>AfVT?9_fZSzs--=TWku1C zz}#@f(REGMGfQ5P{09?Gp&xM-%SIlrIVc-awGItL)M%R0o88unuGUX^(TfYwkGfh% z(b0%$l8MDMh)mXx4_SzpO|T!-$FA1JpjA&l`o@XK50@R2p|g_mTh|X$&r?>_W+1VI zcg^Q@!WYxfJ!UO<#Q*EU(^(dijMFkXn+(n{8fDO00pnt{<@1GtHU>|_8w(`2BYn+2&dD)!ny43Do15t)*%+pA;qXys2I-kZo!u=-nOc@ z;w;=^EFy5KMFsEl+th98U^1j}|Cu#fHi0yN)QWF+TSxZODAlG`C9&rXa@tjCEjF)w z*2w7%kQLe}U>8oavS^U}~^q zfoi&nd1D&XwY`KPb4Rd`fK|70-whS?`F;`eeR$l2591)YR)xL$(2;ykk!_DkbPs>f z63ck6lAvy?Xtr{2l(u?rXKrzJ7c_soF0-b|p1rnWvg>g-!?Up=g~c?ejX5-6((ZDk zrm8cljXB1%vngwwZ?bdDa(rKCT-dO~44h2Gn;E23dL0~T$ud(%0_qqmt=cPTeI90> z5bmAZ`mLm?I=J2PP+L(oU2i-s4YU>x{ce<{Xs0^e;C;N%HB^^v&=6yxfj(kUd|-UH zWt3x+Dy2|ltdMJc(w_X?L3Q=9^Q(`mLNUZlKx{s*+OWW9DvnhvKqjWx$L__bPJi!& zz2q=@&7#HpJpIYC{$Vj_4h>55XChj*F2QtCW#x3{3Qhdf0+ezNmuH^>vl$cFQMB?L6c*mnTZOuLwU1y5V_cM zl4A;*%$t`{EY=adI!)}_f{bfPQl4+n*=gPxeg@j5816^X;N`}g`InfALx6BJgK@gD z4c*$7Ih(!7QGvJakqe#;D)%&ZDBuxjhcIZM@=Dku>F#)D+#v>^x&)bxq)XHmv z6z;7Za?a+&MAdfqpz0zAM@NYDHhb_RRw8VBY0Y|~Z}!neuoAAODa+E{B-1krjSg_kppo_+61ieY-AjjYk z%gkS!J*g7!*K`zHWR-KY)mo{DIiVNz=aXhl+A zUjvQJxXh<)`I>>oxSd}le|kR*PllRQS(U=q-eM2lda!%t5MCx1JmO8o_I?|;gQ->`K%Su_`kiEDHhp@cuGNBAAhyE^1-8C?+zXmj`KG_{2of#STD;{X1Q zsG$43PTEB8xd(J^Kx(e_486*L7elb9KLB zIYYm&+vhsoM)*fE%Z)SKDLJi6?SChs&hYE8kOz;g(Wmgw%UT zzRxZ>i6^n4Q)!IH{93*oIexTsl?)ny&oeIat%EnHL!gjb!RgcczGy>AHv2z=!P`=P z$LF9ffL4 zt%X=E++7g96jnS(hl`oP=BUjcviYXa(0!jCxCv}}Prcfj0v(DKt(=^Oul9yeGSP*6 zQ@BE0mCjB<6Bh=e!Fw$}<-<(T;u6p6AQ&=EKjcwzq8`~_hlN8MMOXn{a{pG{{+1hZ z{0(e*y6{A@CAa~(WYZO>T}S}*rQUG7JT6vv(7n;x>~J>0_?qaSoI(KrF= z=toUp7M4$zSp9L>!wEy0IOZYob3QfI z3~{SE@H5VDLPdK2Mi{%Gqy6`%X!CqAvM{c?oNoBD9&amU}TLu5thtTjoh9Ihxt9^2x=haG7B3=7#ZO0Er*^k~1Uz}8$@ab+= z4iK{Tv6K!o8M`bgGK$P`S+?tG=Jr$KmvrCT@AmWZB}3I_yo>Ez+lvO4+4ZEU!_oc! z7FlKxQm*ElW$Wg + + + CA + + + + + +

+ +
+ + + + diff --git a/interactive/ca-interactive.js b/interactive/ca-interactive.js new file mode 100755 index 0000000..edce9eb --- /dev/null +++ b/interactive/ca-interactive.js @@ -0,0 +1,580 @@ +/** + Interactive cellular automata. + + Michael Soukup 2014. +*/ + + +function zeros(m, n) { + var mat = []; + for (var i=0; i 7) { + return 0; + } + else if (dist[2] == 1 && dist[4] < 3) { + return 0; + } + else { + return 2; + } +} + +function cell_3_update(X) { + // enemy cell + return 3 +} + +function cell_4_update(X) { + // conway live cells + var dist = _ndist(X); + if (dist[2] == 3 && dist[4] > 2) { + return 2 + } + else if (dist[2] > 0 && (dist[4] != 5 || dist[4] == 4)) { + return 4 + } + else if (dist[4] == 2 || dist[4] == 3) { + return 4 + } + else { + return 0 + } +} + +function cell_next(c, X) { + + switch (c) { + case 0: + return cell_0_update(X); + case 1: + return cell_1_update(X); + case 2: + return cell_2_update(X); + case 3: + return cell_3_update(X); + case 4: + return cell_4_update(X); + case 5: + return cell_0_update(X); + } +} + + + + +/** + Board holds the world variables and a complete map over all tiles. + All tiles on the board are simlulated in each step. +*/ +function Board() { + this.x = 0; + this.y = 0; +} + +Board.prototype.on_board = function(x, y) { + // TODO check walls + return (x >= this.x && y >= this.y && x < this.x+this.w && y < this.y+this.h); +} + +Board.prototype.set_tile = function(val, x, y) { + if (this.on_board(x, y)) { + this.map[x][y] = val; + } +} + +Board.prototype.get_tile = function(x, y) { + if (this.on_board(x, y)) { + return this.map[x][y]; + } + else { + return 0; + } +} + +Board.prototype.load_tileset = function(tileset, x, y) { + for (var i=0; i frame.x+frame.w && this.y+this.h > frame.y+frame.h); +} + +TileFrame.prototype.intersects = function(frame) { + return (((this.x > frame.x && this.x < frame.x+frame.w) || (frame.x > this.x && frame.x < this.x+this.w)) && + ((this.y > frame.y && this.y < frame.y+frame.h) || (frame.y > this.y && frame.y < this.y+this.h))); +} + + + + +/** + Holds the canvas context and camera coordinates. Implements methods for + rendering tile sets. + + Coordinates are continuous and in tile space. +*/ +function Camera(canvas_id) { + this.canvas = document.getElementById(canvas_id); + this.ctx = this.canvas.getContext('2d'); + this.width = this.canvas.width; + this.height = this.canvas.height; + + this.tilesize = 5; // Minimum tilesize (px). + this.tw = this.width/this.tilesize; + this.th = this.height/this.tilesize; +} + +Camera.prototype.zoom = function(tilesize) { + var factor = tilesize/this.tilesize, + _tw = this.width/tilesize, + _th = this.height/tilesize, + diff_x = (this.tw - _tw)/2, + diff_y = (this.th - _th)/2; + + this.x += diff_x; + this.tw = _tw; + this.y += diff_y; + this.th = _th; + this.tilesize = tilesize; +} + +Camera.prototype.center = function(x, y) { + this.x = x - this.tw/2; + this.y = y - this.th/2; +} + +Camera.prototype.draw_grid = function() { + var i = (Math.ceil(this.x) - this.x)*this.tilesize, + j = (Math.ceil(this.y) - this.y)*this.tilesize; + + this.ctx.strokestyle = 'black'; + this.ctx.lineWidth = 0.1; + + // Vertical lines + while (i < this.width) { + this.ctx.beginPath(); + this.ctx.moveTo(i, 0); + this.ctx.lineTo(i, this.height); + this.ctx.closePath(); + this.ctx.stroke(); + i += this.tilesize; + } + // Horizontal lines + while (j < this.height) { + this.ctx.beginPath(); + this.ctx.moveTo(0, j); + this.ctx.lineTo(this.width, j); + this.ctx.closePath(); + this.ctx.stroke(); + j += this.tilesize; + } +} + +Camera.prototype.draw_tiles = function(board) { + var x, y, i, j, tile_margin = this.tilesize*0.01; + + x = Math.floor(this.x); + i = (x - this.x) * this.tilesize; + while (i < this.width) { + y = Math.floor(this.y); + j = (y - this.y)*this.tilesize; + + while (j < this.height) { + if (board.get_tile(x,y) != 0) { + this.ctx.fillStyle = CELLCOL[board.get_tile(x, y)]; + this.ctx.beginPath(); + this.ctx.rect(i+tile_margin, j+tile_margin, this.tilesize-2*tile_margin, this.tilesize-2*tile_margin); + this.ctx.closePath(); + this.ctx.fill(); + } + y++; + j += this.tilesize; + } + x++; + i += this.tilesize; + } +} + +Camera.prototype.clear = function() { + this.ctx.clearRect(0, 0, this.width, this.height); +} + + + + +function testsim(canvas_id, world, dt) { + var board = new Board(), + player = new TileFrame(world.player[1], world.player[2], CELLSETS[world.player[0]][0].length, CELLSETS[world.player[0]].length), + cam = new Camera(canvas_id), + tilesize = 8; + + board.load_world(world); + cam.set(world.player[1]-1.5, world.player[1]-1.5, tilesize); // cam.center(..., + cam.draw_grid(); + cam.draw_tiles(board); + setInterval(function (){ + board.simulate(); + cam.clear(); + cam.draw_grid(); + cam.draw_tiles(board); + }, dt); +} + +function testmove(canvas_id, world, dt) { + var board = new Board(), + player = new TileFrame(world.player[1], world.player[2], CELLSETS[world.player[0]][0].length, CELLSETS[world.player[0]].length), + cam = new Camera(canvas_id), + tilesize = 8.8; + + board.load_world(world); + cam.zoom(tilesize); + cam.center(player.x, player.y); + cam.draw_grid(); + cam.draw_tiles(board); + + function expand_player() { + var X; + console.log('exp'); + for (var x=player.x; x 0) { + tilesize *= 0.9; + cam.zoom(tilesize); + } + else { + tilesize *= 1.1; + cam.zoom(tilesize); + } + cam.clear(); + cam.draw_grid(); + cam.draw_tiles(board); + }); +} + + + +// Run +//testsim("canvas", WORLD_0, 1000); +testmove("canvas", WORLD_0, 1000); + + + diff --git a/interactive/recording.gif b/interactive/recording.gif new file mode 100644 index 0000000000000000000000000000000000000000..2b6e11c0bd5caa17008d223deb1e2ccc5de48767 GIT binary patch literal 3500557 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 $zCFnHcvuhowbqn-u|n zK;Mfv>crdVT7%{~u50p)I~kTNRCMO{f0XBcFLr|If<}(3>lz06&A5O543T)6^(WrW zG23(g2qn_6VQOcVZ~Y_cuaj8ovvC)1Y@Xh>p$mLaSkQ5z-(YYyv2nUYK<_)_?mknm`_SvTEF0J>9}Bv+KVzXZYA2(u40J_=B}*Vwd@tzwzeP%YL&*PRWAXP@QkSx2K9QZO<7ZcDbRg6eD1f@}Y)pW8ReM?sJ!#)(C6D4#aS7 zsrmmstAO7u(9YsDEG_sw9GF`;YZ86*(&6A=-OXYO+O_FG+QIDrxwK0QZy>R=57|js zx=@F=bIKe9G~X;g#=3SsH#`b)y*G>{HySWXIeX?IH^4MSXn9Cd_ zHcM`vZo&r+?gBKE=a=3a)ej3&9>rOEZGFtI>jzPuWN%5K6*(o^(!lm9H9n&(8A)1S$p)>pF=PVl~I`_5^Q7LCx?C-wkEa%<%-n+Rs zbKPwmmB$n^YZQH=lgOs?P)?sU&F0(F-$pHx@fB|7viAo&hTocf<@yoO%Z1pbo87J3 z*j)RX&6Gt^)=lY)SV6;`DNSrwoj1Os_YJ3CkGbEw5KrKR&t9U5ybC9$&gYiMmuA{8 zEz$eN)Q3t@^Sm2t(q`)UJkK9**>{w{k4Vw)0sPxoen4YrK$fs^6lVZAmoGKisUR`H z`?c4WtABf<|B-7T_k{n@l!-K5fGpf2#u2Bk4dCMlREGz7X8P@41U*v>{P5UcuE6U% zBzS`;`15p-VS$OjU*G=L;HLn;yTl-D_don8S1)r1zdBcgtq@lt7iWb~mr&PVp`q+s zt`6`}rHhcSiT_xM0{yi^U%G~dLPA|Eoc~RQ1}Fl6Vt{D0o%EK7>=Xe%UKsH*K~xXG z8%^-6B`jq+H0?5sj~eJ<0nAnWn?D_zq4+n8IPC9q2xuChb^$Q_=_1!1iX?V3Cvvq` zc!*oq)pEc-!U40Z?BN!iuCeIQH~_$x2rxni@}+ZRzkIq{8)5##rk~bsUc_cW%x3G{ zc1_!kqTF^v%x(*9jp?zO?=jym04K_u0?i&=T098n0G|>^?pc8Eh{4CiQTN2=C+LV~ zGb>V^sBw8aBJL=PtH>oT8(h&Cxn=aacH|TKNa8E-v#V$-j43L?c69TRrb7%@QVdT$ z5znU>73wHf`q*8us9oY%PcwW>ZHN{i#2g)<+Y?JG<}2~~_3BhCpSGXOOt7A!ucCXL z7_qjnNT3;AT#Bd%-`{wJKwnMEV3`6t#_4#u-gtR$-Q*WNd(S8<<};%Dm;Lfkz=;C_-}kl!RBCRd43 z^bpe|_Za$khH0GcqURPH$k>@2-dv`{<@k7sfJp$f>2?W zMo#wkj%=m%Y_<272bN}_*82u_vHxd;>jmxi6^T|l4hTL%K12(qYunB zMC1q{a;2|xv?cPitnxks^K=PwObT<2Jn{@k^S&eSt*vtHfI0v1Jxyo3&TRau{@W_wMk3#qp+IRn-`ykEURfhNMx2RVqRdGWK_kIBE?M_S zGF?+Ht534(PazD56C_9$OBChnN>(ByGe1ho6Bgys6v8A5(=`iAXdZBX!4`KV6D&Iw z<;)h=0*i{ai_@};YDi169u!X~7nRKx4S`3b@QdG(MWnHUFmSTuZ zQ{qk3C##}ls536Avm=9x@zw>*)p<%**?87w>(qsVYQLq_qUw`X`l~eiGea2Ra*}Z0 zl={S?dh3)L@LX-Wb&Y#}ee6yhRIe84T6gLWH?gkI-$7XE)qh|_LgvycJ!`7S>WK@H zO?n8pC(_GPuh=@HKn3YUmKLE>-=G4|7rD@#9BtpNRebtlJm=TM8r{51*0QG3O#iF#qMv#WNwd=5LSWN!eu!;h{IBK7i+mugqMt;j5b zch5DX%+);Bt?to-*GeL6QW523jboDCX~=Gm7f6Q`WQ$~jTXB~kd1j1cPd~D2RHdg4 z1kdPi0HyW>&vyl=)>)AEx`+2z7FTxaRYu$*YKnRx13k_-5rS7=HeWAv{u|P|4;J2M zJ>M&X>}%d>Xw~aWvgs{r=m)0u_mTB)Vfvr&Urqa1G=Hi`#p^?REK`lt8?hf+~v1HC=r zbvpxtu6#pB^QaN>fo;{^%Z7nl8&pUAb0*KSJ>{}BL|FxJ_~5$aaZ$y7a?uOD|JdJ4 zQ)+#Z>-hL#eB=}1e=}9mi|x|A9wS#k8C{W2uj59TZATbOM(OVUV_YBQXBuN?{~&09 z3u#BW_{aF}Mqa!hqh^xkVEQCQG0wX;_99|jq+~?8aa_q@{EOO{YU9{{w&PzZ#(tTks4 zpowA*q1rUNT7QnBFB6{so?=>uN~g10z}aVBG7CL?V&dvGRqa5g_}rm=dql5i&TZjvu~(pxRx*&Aldlo!G< z{~b8B<=lI>i^9G@{pG7&Oobon4_@;vJZPNX^6I~lLXD&io`la6?)CLDEfU_%NAfLB z+76&87MIipdc78Qix=+a7eI_lGX?|O-izxch{KZkW81~M#>I901+4et#odyx>hiAb z5FSO}v-qVezU8xpMNHaq31}I=3A=R9v_k4*G&it3D7`Q*U45p%^1yJFL4B3et^u!U z;pO5g^?rAW>I#qD%Bfe60CqCx**xc58z7YpOnL z|M{$FpjK7(*A)cTWp19m2#bDNzd@K3{X7gTA|Csgep81srmJhC+$A!sHq!WhLr6S2 zVRO>}ylHyBxtSOJNPNpBee3uBhM8gP-^DH4`z=cMO-FS!&W_}qj()F$cA&I&TeJ;d zj5d+M==z}b_7`fkBjE6V2y{q;HpoWQC9TxeMr?bM>)#M=Y@H6^R#+@T1Dc4p9o@E} zJ`t5Zpk~F0;pv@ty6svS><&B~)TSQR;Dw`o zon*sxHJOb?Z~~>kuoP-ft7&DQX?XR;hK%7pm)-iN;c!jE@>|M{C(Qd8!;RDXeZ~EK z9P+%DzM8JO|3GaWPqv=`d(a`d`p)NY8@2QhJ1D(>c-wSHMYYhPdPu`^_{?Z=t>lma zdi1FI=z8Ihp7NM_=`BVzob}r8?PFKYBlO^w{W_ABrP!4|ooa zC6|tr!H3di2S0p{*|5v^G{o+x-JX-;Ui&^~L?A-Pep_qktgv*iX>ogu z&avEZyAg2KYll5ckvXqW-?hT-=7?RCLxBIvfX)ZNbhity1IMZ!p!|VEcQ2~vGE8X_;!bj{KY^x(!-=C+OMHmmuj zW9d3`=(=y|wpY-4uIY4D;FJrye}2ERRC+h%gu|L_Ay*CtJS&uyVQU>`< zbuTV^yft*9E_-r-J-sM9J@L(wYu?8g-7gEA+(NOJ%~)Z3EbgZo^nPRM^Z^!&UOL5; zVSg+{qW<5j|LaThF*fpl&RI>|p;Q0o^#At&@Bg~-`FqoP;I4qdr2{4SD z4h)KU_?#v#G%h?jIwmS60Rl*mNKXSp!I?2hIjLoZiN)Ckxdr(^7_bOT{gJe#mGo_G zJv=h50a#K~UYAkXSlxvhugFU7?3oDe3mcdm${U_8UE4yA^pDMAVs_9>I2Kt_dH)6E+E8@nblLSw%7V%?e$U7@RKFDt0pzA>ZjeE z30w0>0V%Je|AzBbSU!1Y|2x4g=g4AZ(bCsPC(&ciO^m*HobUWQW%43i-x&2fa8pX9ZjZ7c2wTqYGAi9t-u%2Gaw3vO=Ha zS+E7YM_Bv`e%B`UGV-YldM%Jky^hJX{TBW^N+JQh9>ZEoEaykZ!~H7u+c)|(e6sXQ zeXyqC^lR`(A&jXP&m^%)oUxVV>qN#54tYxi77 z+a^GMra2qJ0vaWvgU$(MNX~^g%6o991uVjtVw7gXIG{m43N5oz&8!M@awjc0lKh%x zFa;X55=Ge+Kp-!ybQ8l}=8r9$MW?p(@$eOQZY$fAGztOvs#?z#w?M!0cx)@nDEq9c zqA71UYnw)ux$BBNkoMRJy-Oeeg%WysKWfp(r||l=p8FvtUC-`^oQF z$9_&(Tnzt)%*LT-1x)UU;+op!Yk79US2eW2AyqZ}i8uLuw`kx^RfnXk_t7Zd+}vUF z7uUGbHyp2Q&*0zRk&8@f5_z5Vn?**r41e44a-NgUx80n>(Q1b&G$x%H`r02svs-=eGE?%hA z@c_+1!`Uzk%kAmhPnO%WC3C^X{iX}%`;!iZNUz6Fs}E!zvb!0{98Tw#d0(xc2w)G; zL}fk~calbTx302x4;_4n_zdy$JEU)4J18&DEnr`W$>HmM2_Vy7e1K2=-%41d2jlKb zLRsP#QnukB(icX=7}wUP0o1{-yp{9Kt_8&8CdC zkmpZ#j8GiNI!JKq5b7EM<7H$&O#;Y^CX`1ihqKXna`o`$9YwgZv$0MYQUIqk(&Ho}Fpd_B!LV7)44 zAI2;a*v-W9uOu`*oKiN(Uvugyp-g_fOY71%U+t(D2Ud(F9BOfhy-iZHTpdeWARH4` zfuRhuXflc==diC$>A(1r#wHwmLVq~8`eMhSWlNK0E(wASHL^OTV%IG`eV+XSNEpvb ze1R5~o<&3iRA*hiz^G(fj)HW->EtySfq%0D-ka~U`6)1}-q$0Um0Fo%xm;>rleHp9 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