Added ME73 cells.
authorEugen Sawin <sawine@me73.com>
Fri, 06 Jan 2012 01:23:40 +0100
changeset 84b7834ce141c4
parent 83 228adcfd8f23
child 85 e78c4a33e958
Added ME73 cells.
factory/create_page
factory/v2012/script.js
script.js
     1.1 --- a/factory/create_page	Fri Jan 06 00:02:26 2012 +0100
     1.2 +++ b/factory/create_page	Fri Jan 06 01:23:40 2012 +0100
     1.3 @@ -5,7 +5,7 @@
     1.4  from optparse import OptionParser
     1.5  
     1.6  content_dir = "v2012"
     1.7 -content_files = ("index.html", "resume.html", "howiwork.html", "personalwork.html", "books.html", "links.html", "experiments.html", "linksend.html", "gameoflife.html", "mandelbrot.html")
     1.8 +content_files = ("index.html", "resume.html", "howiwork.html", "personalwork.html", "books.html", "links.html", "linksend.html", "gameoflife.html", "mandelbrot.html")
     1.9  
    1.10  def create_page(frame_filename, content_filename, output_filename):
    1.11     frame_file = open(frame_filename, "r")
     2.1 --- a/factory/v2012/script.js	Fri Jan 06 00:02:26 2012 +0100
     2.2 +++ b/factory/v2012/script.js	Fri Jan 06 01:23:40 2012 +0100
     2.3 @@ -5,7 +5,7 @@
     2.4  
     2.5  $(document).ready(function() {   
     2.6      simulation = new Simulation(document.getElementById("sim"), 
     2.7 -                                670, 50, 4, green, background);  
     2.8 +                                670, 50, 8, green, background);  
     2.9      var image = new Image();
    2.10      image.onload = init_logo;
    2.11      image.src = "images/logobase.png";
    2.12 @@ -36,10 +36,10 @@
    2.13      window.onEachFrame(update);  
    2.14      var pos = document.location.href.lastIndexOf("/") + 1; 
    2.15      var page = document.location.href.substr(pos);
    2.16 -    if (page == "experiments.html") {
    2.17 +    if (page == "mandelbrot.html") {
    2.18          draw(0, 0, 0, 0, 0);
    2.19      } else if (page == "gameoflife.html") {
    2.20 -        init_gameoflife();
    2.21 +        init_gameoflife("text");
    2.22      }
    2.23  });
    2.24  
    2.25 @@ -296,15 +296,66 @@
    2.26      context.putImageData(image, 0, 0);
    2.27  }
    2.28  
    2.29 -function init_gameoflife() {
    2.30 +var char_map = new Array();
    2.31 +char_map["A"] = new Array(new Array(0, 4), new Array(1, 3),
    2.32 +                          new Array(2, 2), new Array(3, 1),
    2.33 +                          new Array(4, 0), new Array(5, 1),
    2.34 +                          new Array(6, 2), new Array(7, 3),
    2.35 +                          new Array(8, 4), new Array(2, 3),
    2.36 +                          new Array(3, 3), new Array(4, 3),
    2.37 +                          new Array(5, 3), new Array(6, 3));
    2.38 +char_map["M"] = new Array(new Array(0, 4), new Array(0, 3),
    2.39 +                          new Array(0, 2), new Array(0, 1),
    2.40 +                          new Array(0, 0), new Array(0, 5),
    2.41 +                          new Array(5, 4), new Array(5, 3),
    2.42 +                          new Array(5, 2), new Array(5, 1),
    2.43 +                          new Array(5, 0), new Array(5, 5),
    2.44 +                          new Array(1, 1), new Array(2, 2), 
    2.45 +                          new Array(4, 2), new Array(5, 1),
    2.46 +                          new Array(3, 3));
    2.47 +char_map["E"] = new Array(new Array(0, 4), new Array(0, 3),
    2.48 +                          new Array(0, 2), new Array(0, 1),
    2.49 +                          new Array(0, 0), new Array(0, 5),
    2.50 +                          new Array(1, 0), new Array(2, 0),
    2.51 +                          new Array(3, 0),
    2.52 +                          new Array(1, 3), new Array(2, 3),                       
    2.53 +                          new Array(1, 5), new Array(2, 5),
    2.54 +                          new Array(3, 5))
    2.55 +char_map["7"] = new Array(new Array(0, 0), new Array(1, 0),
    2.56 +                          new Array(2, 0),
    2.57 +                          new Array(0, 5), new Array(0, 4),
    2.58 +                          new Array(1, 3), new Array(2, 2));
    2.59 +char_map["3"] = new Array(new Array(2, 4), new Array(2, 3),
    2.60 +                          new Array(2, 2), new Array(2, 1),
    2.61 +                          new Array(0, 0), new Array(0, 5),
    2.62 +                          new Array(1, 0), new Array(2, 0),                         
    2.63 +                          new Array(1, 3), new Array(2, 3),                          
    2.64 +                          new Array(1, 5), new Array(2, 5))
    2.65 +
    2.66 +function init_gameoflife(text) {
    2.67      var canvas = document.getElementById("gameoflife");
    2.68 +    var cell_size = 16;
    2.69      if (canvas) {
    2.70 -        gameoflife = new Simulation(canvas, 670, 670, 16,
    2.71 +        gameoflife = new Simulation(canvas, 670, 670, cell_size,
    2.72                                      green, black);
    2.73          $("#gameoflife").mousemove(function(event) { 
    2.74              gameoflife.mouse_moved(mouse_pos(event, "#gameoflife")); 
    2.75 -        });       
    2.76 -    }
    2.77 +        });   
    2.78 +        text = "ME73";
    2.79 +        var offset = new Array(13, 17);
    2.80 +        for (var c in text) {            
    2.81 +            var w = 0;
    2.82 +            for (p in char_map[text[c]]) {
    2.83 +                var x = char_map[text[c]][p][0];
    2.84 +                var y = char_map[text[c]][p][1];
    2.85 +                w = Math.max(w, x);
    2.86 +                var pos = new Array((x + offset[0]) * cell_size, 
    2.87 +                                    (y + offset[1]) * cell_size);
    2.88 +                gameoflife.activate_cell(pos);
    2.89 +            }            
    2.90 +            offset[0] += w + 2;
    2.91 +        }       
    2.92 +    }    
    2.93  }
    2.94  
    2.95  function Colour(r, g, b, a) {
    2.96 @@ -638,7 +689,7 @@
    2.97  }
    2.98  
    2.99  function Simulation(canvas, w, h, cell_size, life_colour, dead_colour) {
   2.100 -    this.last_update = 0;
   2.101 +    this.last_update = $.now() + 3000;
   2.102      this.last_draw = 0;
   2.103      this.last_mouse_moved = 0;
   2.104      this.redraw = new Array();   
   2.105 @@ -668,7 +719,7 @@
   2.106  }
   2.107  Simulation.prototype.update = function() {
   2.108      var now = $.now();
   2.109 -    if (this.pos_queue.length) {
   2.110 +    while (this.pos_queue.length) {
   2.111          var pos = this.pos_queue.pop();       
   2.112          if (pos[0] < this.canvas.width
   2.113              && pos[1] < this.canvas.height) {
   2.114 @@ -708,10 +759,13 @@
   2.115      this.cell_queue = next_cell_queue;
   2.116      this.last_update = now;  
   2.117  }
   2.118 +Simulation.prototype.activate_cell = function(pos) {
   2.119 +    this.pos_queue.push(pos);   
   2.120 +}
   2.121  Simulation.prototype.mouse_moved = function(pos) {
   2.122      var now = $.now();    
   2.123 -    if (this.last_mouse_moved + 50 < now) {
   2.124 -        this.pos_queue.push(pos);
   2.125 +    if (this.last_mouse_moved + 50 < now) {       
   2.126 +        this.pos_queue.push(pos);      
   2.127          this.last_mouse_moved = now;       
   2.128      }
   2.129  }
     3.1 --- a/script.js	Fri Jan 06 00:02:26 2012 +0100
     3.2 +++ b/script.js	Fri Jan 06 01:23:40 2012 +0100
     3.3 @@ -5,7 +5,7 @@
     3.4  
     3.5  $(document).ready(function() {   
     3.6      simulation = new Simulation(document.getElementById("sim"), 
     3.7 -                                670, 50, 4, green, background);  
     3.8 +                                670, 50, 8, green, background);  
     3.9      var image = new Image();
    3.10      image.onload = init_logo;
    3.11      image.src = "images/logobase.png";
    3.12 @@ -36,10 +36,10 @@
    3.13      window.onEachFrame(update);  
    3.14      var pos = document.location.href.lastIndexOf("/") + 1; 
    3.15      var page = document.location.href.substr(pos);
    3.16 -    if (page == "experiments.html") {
    3.17 +    if (page == "mandelbrot.html") {
    3.18          draw(0, 0, 0, 0, 0);
    3.19      } else if (page == "gameoflife.html") {
    3.20 -        init_gameoflife();
    3.21 +        init_gameoflife("text");
    3.22      }
    3.23  });
    3.24  
    3.25 @@ -296,15 +296,66 @@
    3.26      context.putImageData(image, 0, 0);
    3.27  }
    3.28  
    3.29 -function init_gameoflife() {
    3.30 +var char_map = new Array();
    3.31 +char_map["A"] = new Array(new Array(0, 4), new Array(1, 3),
    3.32 +                          new Array(2, 2), new Array(3, 1),
    3.33 +                          new Array(4, 0), new Array(5, 1),
    3.34 +                          new Array(6, 2), new Array(7, 3),
    3.35 +                          new Array(8, 4), new Array(2, 3),
    3.36 +                          new Array(3, 3), new Array(4, 3),
    3.37 +                          new Array(5, 3), new Array(6, 3));
    3.38 +char_map["M"] = new Array(new Array(0, 4), new Array(0, 3),
    3.39 +                          new Array(0, 2), new Array(0, 1),
    3.40 +                          new Array(0, 0), new Array(0, 5),
    3.41 +                          new Array(5, 4), new Array(5, 3),
    3.42 +                          new Array(5, 2), new Array(5, 1),
    3.43 +                          new Array(5, 0), new Array(5, 5),
    3.44 +                          new Array(1, 1), new Array(2, 2), 
    3.45 +                          new Array(4, 2), new Array(5, 1),
    3.46 +                          new Array(3, 3));
    3.47 +char_map["E"] = new Array(new Array(0, 4), new Array(0, 3),
    3.48 +                          new Array(0, 2), new Array(0, 1),
    3.49 +                          new Array(0, 0), new Array(0, 5),
    3.50 +                          new Array(1, 0), new Array(2, 0),
    3.51 +                          new Array(3, 0),
    3.52 +                          new Array(1, 3), new Array(2, 3),                       
    3.53 +                          new Array(1, 5), new Array(2, 5),
    3.54 +                          new Array(3, 5))
    3.55 +char_map["7"] = new Array(new Array(0, 0), new Array(1, 0),
    3.56 +                          new Array(2, 0),
    3.57 +                          new Array(0, 5), new Array(0, 4),
    3.58 +                          new Array(1, 3), new Array(2, 2));
    3.59 +char_map["3"] = new Array(new Array(2, 4), new Array(2, 3),
    3.60 +                          new Array(2, 2), new Array(2, 1),
    3.61 +                          new Array(0, 0), new Array(0, 5),
    3.62 +                          new Array(1, 0), new Array(2, 0),                         
    3.63 +                          new Array(1, 3), new Array(2, 3),                          
    3.64 +                          new Array(1, 5), new Array(2, 5))
    3.65 +
    3.66 +function init_gameoflife(text) {
    3.67      var canvas = document.getElementById("gameoflife");
    3.68 +    var cell_size = 16;
    3.69      if (canvas) {
    3.70 -        gameoflife = new Simulation(canvas, 670, 670, 16,
    3.71 +        gameoflife = new Simulation(canvas, 670, 670, cell_size,
    3.72                                      green, black);
    3.73          $("#gameoflife").mousemove(function(event) { 
    3.74              gameoflife.mouse_moved(mouse_pos(event, "#gameoflife")); 
    3.75 -        });       
    3.76 -    }
    3.77 +        });   
    3.78 +        text = "ME73";
    3.79 +        var offset = new Array(13, 17);
    3.80 +        for (var c in text) {            
    3.81 +            var w = 0;
    3.82 +            for (p in char_map[text[c]]) {
    3.83 +                var x = char_map[text[c]][p][0];
    3.84 +                var y = char_map[text[c]][p][1];
    3.85 +                w = Math.max(w, x);
    3.86 +                var pos = new Array((x + offset[0]) * cell_size, 
    3.87 +                                    (y + offset[1]) * cell_size);
    3.88 +                gameoflife.activate_cell(pos);
    3.89 +            }            
    3.90 +            offset[0] += w + 2;
    3.91 +        }       
    3.92 +    }    
    3.93  }
    3.94  
    3.95  function Colour(r, g, b, a) {
    3.96 @@ -638,7 +689,7 @@
    3.97  }
    3.98  
    3.99  function Simulation(canvas, w, h, cell_size, life_colour, dead_colour) {
   3.100 -    this.last_update = 0;
   3.101 +    this.last_update = $.now() + 3000;
   3.102      this.last_draw = 0;
   3.103      this.last_mouse_moved = 0;
   3.104      this.redraw = new Array();   
   3.105 @@ -668,7 +719,7 @@
   3.106  }
   3.107  Simulation.prototype.update = function() {
   3.108      var now = $.now();
   3.109 -    if (this.pos_queue.length) {
   3.110 +    while (this.pos_queue.length) {
   3.111          var pos = this.pos_queue.pop();       
   3.112          if (pos[0] < this.canvas.width
   3.113              && pos[1] < this.canvas.height) {
   3.114 @@ -708,10 +759,13 @@
   3.115      this.cell_queue = next_cell_queue;
   3.116      this.last_update = now;  
   3.117  }
   3.118 +Simulation.prototype.activate_cell = function(pos) {
   3.119 +    this.pos_queue.push(pos);   
   3.120 +}
   3.121  Simulation.prototype.mouse_moved = function(pos) {
   3.122      var now = $.now();    
   3.123 -    if (this.last_mouse_moved + 50 < now) {
   3.124 -        this.pos_queue.push(pos);
   3.125 +    if (this.last_mouse_moved + 50 < now) {       
   3.126 +        this.pos_queue.push(pos);      
   3.127          this.last_mouse_moved = now;       
   3.128      }
   3.129  }