Matrix-Code-herz.php


Quell Code


<style>
  html {
    font-family: monospace;
	background-color: #111;
	color: #1A9E00;
}

#block {
	margin-top: 30px;
	text-align: center;
	min-width: 60em;
	width: 60em;
	margin: 30px auto;
	font-size: 1.5em;
}
</style>
<div id="block"></div>
<script>
  
  String.prototype.replaceAt = function( index, character )
{
	return this.substr( 0, index )
		+ character
		+ this.substr( index + character.length );
}

chars = "ABCDEFGHIJKLMNOPQRSTUVQXYZabcdefghijklmnopqrstuvqxyz0123456789!\"£$%^&*()-_=+{}[];:'#~,.?\\/"

hashIndices = [
	137,138,139,140,141,142,143,156,157,158,159,160,161,162,195,196,197,198,199,
	200,201,202,203,204,205,214,215,216,217,218,219,220,221,222,223,224,254,255,
	256,257,258,259,260,261,262,263,264,265,266,267,272,273,274,275,276,277,278,
	279,280,281,282,283,284,285,314,315,316,317,318,319,320,321,322,323,324,325,
	326,327,328,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,374,
	375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,
	394,395,396,397,398,399,400,401,402,403,404,405,435,436,437,438,439,440,441,
	442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,
	461,462,463,464,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,
	511,512,513,514,515,516,517,518,519,520,521,522,523,557,558,559,560,561,562,
	563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,
	582,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,
	636,637,638,639,640,641,679,680,681,682,683,684,685,686,687,688,689,690,691,
	692,693,694,695,696,697,698,699,700,740,741,742,743,744,745,746,747,748,749,
	750,751,752,753,754,755,756,757,758,759,801,802,803,804,805,806,807,808,809,
	810,811,812,813,814,815,816,817,818,862,863,864,865,866,867,868,869,870,871,
	872,873,874,875,876,877,924,925,926,927,928,929,930,931,932,933,934,935,985,
	986,987,988,989,990,991,992,993,994,1047,1048,1049,1050,1051,1052,1109,1110
	];

count = 0;

function getBlock()
{
	var block = getBackgroundBlock();
	block = overlayHashes(block);
	block = addBreaks(block);
	return block;
}

function getBackgroundBlock()
{
	var block = ""

	for(var i = 0; i < 20 * 60; i++)
	{
		block += chars.charAt(Math.floor(Math.random() * chars.length));;
	}

	return block;
}

function overlayHashes( block )
{
	for(var i = 0; i < hashIndices.length; i++)
	{
		var chance = count / hashIndices.length;
		var modifier = 2;
		chance *= modifier;
		if( chance > 0.98 )
		{
			chance = 0.98;
		}

		if( Math.random() < chance )
		{
			var ind = hashIndices[i];
			block = block.replaceAt(ind,"@");	
		}
	}

	return block;
}

function addBreaks( block )
{
	var parts = block.match(/.{1,60}/g);
	return parts.join("<br>");
}

function updateBlock()
{
	var displayBlock = getBlock();
	document.getElementById("block").innerHTML = displayBlock;
	count++;
}

updateBlock();

setInterval(updateBlock, 300);

</script>