Skip to content

Instantly share code, notes, and snippets.

@romulo1984
Forked from aholmes/print_ascii_art.js
Last active June 13, 2016 20:31
Show Gist options
  • Save romulo1984/e0a0795189ad7f9ec6429664cc830d85 to your computer and use it in GitHub Desktop.
Save romulo1984/e0a0795189ad7f9ec6429664cc830d85 to your computer and use it in GitHub Desktop.
Prints ASCII art in your console.
var art='MMMMMMM$IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII7IIII7MMMMMMMMMMMMMMMM
MMMMMMM77IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII7MMMMMMMMMMMM
MMMMMMZ777IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIMMMMMMMMMM
MMMMMM77777IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIMMMMMMMM
MMMMMM777777IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII7$MMMMMM
MMMMMM7777777IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII7MMMMM
MMMMMM77777777IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIMMMM
MMMMM777777777$IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIMMM
MMMMM$7777777777IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII7MM
MMMMM777777777777IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIMM
MMMMM7777777777777IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIM
MMMM$7777777777777$IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIM
MMMM7777777777777777IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIM
MMMM77777777777777777IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIID
MMMM777777777777777777IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII7
MMM87777777777777777777IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIZ
MMM777777777777777777777IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIM
MMM7777777777777777777777IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIM
MMM7777777777777777777777IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIM
MM877777777777777777777777IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIMM
MM$777777777777777777777777IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIINMM
MM77777777777777777777777777IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII7MMM
MM777777777777777777777777777IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIMMMM
MM7777777777777777777777777777IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIZMMMMM
M777777777777777777777777777777IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIMMMMMMM
M7777777777777777777777777777777IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII7MMMMMMMM
M77777777777777777777777777777777IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIMMMMMMMMMM
M777777777777777777777777777777777IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII7IMMMMMMMMMMMM
$7777777777777777777777777777777777IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIMMMMMMMMMMMMMMM
777777777777777777777777777777777777IIIIIIIIIIIIIIIIIIIIIIIIIINMMMMMMMMMMMMMMMMM
777777777777777777777777777777777777$IIIIIIIIIIIIIIIIIIIIIMMMMMMMMMMMMMMMMMMMMMM
77777777777777777777777777777777777777IIIIIIIIIII777IMMMMMMMMMMMMMMMMMMMMMMMMMMM
77777777777777777777777777777777777777IMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIOMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIINMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII7MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIDMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII7MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMNIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII$MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMM7IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMDIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII7MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMM7IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMM$IIIIIIIIIIIIIIIIIIIIIIIIII7MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMM7IIIIIIIIIIIIIIIIIIIIIIIIMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMIIIIIIIIIIIIIIIIIIIIIMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMIIIIIIIIIIIIII7MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMM87ZNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM';
function getCharacters(art)
{
var i = art.length;
// used to track the time at which the letter should print regardless of the current i (which is the character position including whitespace)
var i_letter = 0;
var s = ''; // string of whitespace
var characters = [];
do
{
i = (i + 1) % art.length;
var c = art[i];
var isWhitespace = /\s/.test(c);
if (isWhitespace)
{
s += c;
continue; // don't print the whitespace yet
}
else
{
if (s.length > 0)
{
c = s + c; // be sure to include the character currently being parsed
s = '';
}
i_letter = (i_letter + 1) % art.length;
characters.push(c);
}
}
while(i);
return characters;
}
var characters = getCharacters(art);
var output = '';
function printCharacterByIndex(characters, index, delay)
{
if (characters[index] === undefined) return;
output += characters[index];
console.clear();
console.log(output)
window.setTimeout(printCharacterByIndex.bind(null, characters, index + 1, delay), delay);
}
console.clear();
printCharacterByIndex(getCharacters(art), 0, 100);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment