Skip to content

Instantly share code, notes, and snippets.

Keybase proof

I hereby claim:

To claim this, I am signing this object:

@tiago
tiago / pixelscamp2016-challenge2-2-partial.js
Created September 26, 2016 15:32
Pixels Camp Challenge #2 - Factor-out redundancy (partial)
var find_matching = (start, stop, direction) => {
var level = 1;
instruction_pointer += direction;
while(level > 0 && instructions[instruction_pointer]) {
instruction_pointer += direction;
if (instructions[instruction_pointer] === start) level++;
if (instructions[instruction_pointer] === stop) level--;
}
}
...
@tiago
tiago / pixelscamp2016-challenge2-4.js
Created September 26, 2016 05:00
Pixels Camp Challenge #2 - Remove oom
var c = (program) => {
var register = undefined;
var memory = [0];
var memory_pointer = 0;
var instruction_pointer = 0;
var find_matching = (start, stop, direction) => {
var level = 1;
instruction_pointer += direction;
while(level) {
instruction_pointer += direction;
@tiago
tiago / pixelscamp2016-challenge2-final.js
Last active October 30, 2016 16:10
Pixels Camp Challenge #2 - Final submission
c = (program, register, undefined) => {
// These variable declarations are just to aid compression and should be removed from the compressed output
var memory, instruction_pointer, memory_pointer, write_char, level, commands, instruction, tokens, instructions, find_matching, memory_value;
memory = [instruction_pointer = memory_pointer = 0];
write_char = output_char;
find_matching = (start, stop, direction) => {
level = 1;
instruction_pointer += direction;
@tiago
tiago / pixelscamp2016-challenge2-final-compressed.js
Created September 26, 2016 04:42
Pixels Camp Challenge #2 - Final submission (compressed)
c = (a, b, c) => {
for (d = [e = f = 0], g = output_char, m = (a, b, c) => {
for (h = 1, e += c; h += l[e += c] == a ? 1 : l[e] == b ? -1 : 0;);
}, i = {
moo: $ => m(k[0], k[7], -1) | e--,
mOo: $ => f--,
moO: $ => d[++f] |= 0,
mOO: $ => 3 == n || i[k[n]](),
Moo: $ => n ? g(String.fromCharCode(n)) : d[f] = input_char(),
MOo: $ => d[f]--,
@tiago
tiago / pixelscamp2016-challenge2-3.js
Last active September 26, 2016 04:29
Pixels Camp Challenge #2 - Remove checks
var c = (program) => {
var register = undefined;
var memory = [0];
var memory_pointer = 0;
var instruction_pointer = 0;
var find_matching = (start, stop, direction) => {
var level = 1;
instruction_pointer += direction;
while(level) {
instruction_pointer += direction;
@tiago
tiago / pixelscamp2016-challenge2-2.js
Last active September 26, 2016 04:30
Pixels Camp Challenge #2 - Factor-out redundancy
var c = (program = '') => {
var register = undefined;
var memory = [0];
var memory_pointer = 0;
var instruction_pointer = 0;
var find_matching = (start, stop, direction) => {
var level = 1;
instruction_pointer += direction;
while(level > 0 && instructions[instruction_pointer]) {
instruction_pointer += direction;
@tiago
tiago / pixelscamp2016-challenge2-1.js
Last active September 26, 2016 04:33
Pixels Camp Challenge #2 - First working solution
var c = (program = '') => {
var register = undefined;
var memory = [0];
var memory_pointer = 0;
var instruction_pointer = 0;
var commands = {
moo: () => {
var level = 1;
instruction_pointer--;
while(level > 0 && instructions[instruction_pointer]) {
@tiago
tiago / pixelscamp2016-challenge2-core.js
Last active September 26, 2016 04:30
Pixels Camp Challenge #2 - Core structure
var c = (program) => {
var register = undefined;
var memory = [0];
var memory_pointer = 0;
var instruction_pointer = 0;
var commands = {
moo: () => { console.log('moo'); },
mOo: () => { console.log('mOo'); },
moO: () => { console.log('moO'); },
mOO: () => { console.log('mOO'); },
@tiago
tiago / pixelscamp2016-challenge2-tests.js
Last active September 25, 2016 14:31
Pixels Camp Challenge #2 - Tests
var input_char = (function () {
var i = 0;
var text = 'Hello COW!';
return function input_char() {
return text[i++ % text.length].charCodeAt(0);
};
} ());
function output_char(char) {
if(typeof char !== 'string' || char.length !== 1) {