Skip to content

Instantly share code, notes, and snippets.

@dfltr
Last active February 27, 2020 04:41
Show Gist options
  • Save dfltr/dd07e4177d0d5a8e0f79ad2e5e8f9a97 to your computer and use it in GitHub Desktop.
Save dfltr/dd07e4177d0d5a8e0f79ad2e5e8f9a97 to your computer and use it in GitHub Desktop.
Snekbot - A solver for the Discord 404 page game fashioned from pure spaghetti
var d = document,
qs = s => d.querySelector(s),
r = (s, n) => s.repeat(n),
c = qs('[class*=gameWrap]'),
cE = c => {
var e = d.createEvent('Event');
e.initEvent('keydown', true, true);
e.keyCode = c;
return e;
},
dE = e => c.dispatchEvent(e),
mE = {
u: cE(38),
d: cE(40),
l: cE(37),
r: cE(39),
e: cE(13),
},
s = () => {
var i = 0,
z = 0,
t = 'u5 l9 u1 ' + r('r20 d1 l20 d1 ',5) + 'r20 d2 ' + r('l1 u1 l1 d1 ',10) + 'l1 u12 r1',
m = '';
t.split(' ').forEach(j => {
var p = /([a-z]{1})([0-9]+)/.exec(j);
m += r(p[1],p[2]);
});
m = Array.from(m);
return setInterval(() => {
i = i >= m.length ? 0 : i;
dE(mE[m[i]]);
i++;
if (!z && i > 14) {
m.splice(0, 15);
i = 0;
z = 1;
}
}, 10);
},
v = s(),
g = setInterval(() => {
if (qs('[class*=winner]')) {
clearInterval(v);
dE(mE.e);
v = s();
}
}, 1000);
/*
I Don't Dare Quit Dancing
var d=document,qs=function(a){return d.querySelector(a)},r=function(a,b){return a.repeat(b)},c=qs("[class*=gameWrap]"),cE=function(a){var b=d.createEvent("Event");b.initEvent("keydown",!0,!0);b.keyCode=a;return b},dE=function(a){return c.dispatchEvent(a)},mE={u:cE(38),d:cE(40),l:cE(37),r:cE(39),e:cE(13)},s=function(){var a=0,b=0,e="";("u5 l9 u1 "+r("r20 d1 l20 d1 ",5)+"r20 d2 "+r("l1 u1 l1 d1 ",10)+"l1 u12 r1").split(" ").forEach(function(a){a=/([a-z]{1})([0-9]+)/.exec(a);e+=r(a[1],a[2])});e=Array.from(e); return setInterval(function(){a=a>=e.length?0:a;dE(mE[e[a]]);a++;!b&&14<a&&(e.splice(0,15),a=0,b=1)},10)},v=s(),g=setInterval(function(){qs("[class*=winner]")&&(clearInterval(v),dE(mE.e),v=s())},1E3);
*/
@dfltr
Copy link
Author

dfltr commented Aug 3, 2017

Previous versions of the instruction set:

var moveTemplate = [
  //Get from start to top left corner
  'u5',
  'l9',
  'u1',

  //Run the jewels x 6
  'r20',
  'd1',
  'l20',
  'd1',

  'r20',
  'd1',
  'l20',
  'd1',

  'r20',
  'd1',
  'l20',
  'd1',

  'r20',
  'd1',
  'l20',
  'd1',

  'r20',
  'd1',
  'l20',
  'd1',

  'r20',
  'd2',

  'l1',
  'u1',
  'l1',
  'd1',

  'l1',
  'u1',
  'l1',
  'd1',

  'l1',
  'u1',
  'l1',
  'd1',

  'l1',
  'u1',
  'l1',
  'd1',

  'l1',
  'u1',
  'l1',
  'd1',

  'l1',
  'u1',
  'l1',
  'd1',

  'l1',
  'u1',
  'l1',
  'd1',

  'l1',
  'u1',
  'l1',
  'd1',

  'l1',
  'u1',
  'l1',
  'd1',

  'l1',
  'u1',
  'l1',
  'd1',

  //Reset
  'l1',
  'u12',
  'r1',
];


var m = [
  'u',
  'u',
  'u',
  'u',
  'u',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'u',

  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'd',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'd',

  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'd',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'd',

  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'd',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'd',

  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'd',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'd',

  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'd',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'd',

  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'r',
  'd',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',
  'l',

  'l',
  'u',
  'u',
  'u',
  'u',
  'u',
  'u',
  'u',
  'u',
  'u',
  'u',
  'u',
  'r',
];

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment