Twitter CA
HTML
A twitter bot that tweets a generation of a CA every hour(?) and each day changes rules. Once all rules have been satisfied it starts again with different seed values.
CSS
html, body {
margin: 20px;
font-family: monospace;
_font-size: 12px;
}
JavaScript
var d = document.createElement( 'div' )
document.body.appendChild(d)
var art = [ '▽', '▲' ];
art = [ '○', '●' ];
art = [ '□', '■' ]
art = [ '◎', '◉' ]
art = [ '◇', '◆' ]
art = [ '◢', '◣' ]
art = [ '◻', '◼' ]
art = [ '▢', '▩' ]
art = [ '░', '▓' ]
art = [ '▁', '▉' ]
art = [ '✳', '✱' ]
art = [ '❑', '❒' ]
var a = []
var h = []
var r = {}
var g = 0
for ( var i = 0; i < 8; i++ ) r[ pad( i.toString(2), 3 ) ] = 0;
function pad( s, i ) {
while( s.length < i ) s = '0' + s;
return s;
}
function wrap( n, k ) {
return n < 0 ? k + n : n % k;
}
function mutate() {
var b = []
for ( var i = 0, n = a.length; i < n; i++ ) {
t = a[ wrap( i - 1, n ) ].toString();
t += a[ i ].toString();
t += a[ wrap( i + 1, n ) ].toString();
b[i] = r[t];
}
a = [].concat(b);
}
function render() {
for ( var i = 0, n = a.length, s = ''; i < n; i++ )
s += art[ a[i] ? 1 : 0 ];
d.innerText += '\n' + s;
}
// run
function init() {
// initialise values
a = [];
while ( a.length < 36 ) a.push( Math.random() < 0.5 ? 0 : 1 )
// rules
for ( var k in r ) r[k] = Math.random() < 0.5 ? 0 : 1;
var s = '';
for ( var k in r ) s += k + ',';
d.innerText = s;
}
init();
setInterval(function() {
if ( g++ > 20 ) {
g = 0;
init();
}
render()
mutate()
}, 200)