I have created a rudimentary EasterEgg within my code to activate when the following keystrokes are made (not simultaneously) Enter + c + o + l + o + r + s with the following code:
isEnter = 0; isC = 0; isO = 0; isL = 0; isR = 0; isS = 0;
$(window).keydown(function(e){
if(e.which==13) isEnter = 1; if(e.which==67) isC = 1; if(e.which==79) isO = 1;
if(e.which==76) isL = 1; if(e.which==82) isR = 1; if(e.which==83) isS = 1;
ColorMap();
});
function ColorMap(){
if(isEnter==1 && isC==1 && isO==1 && isL==1 && isR==1 && isS==1){
//DO FUNCTION//
isEnter = 0; isC = 0; isO = 0; isL = 0; isR = 0; isS = 0; //SET VARS BACK TO 0
};
};
I need to add reset functionality to the keydown function to reset all variables if something other than those keys are pressed… that way they have to press Enter + c + o + l + o + r + s or the statement gets reset and they have to start again…(this will make the ‘EasterEgg’ harder to get to [or at least less likely to get to by fluke or random keystrokes]).
You want to check for these in order, as well. Right now, you could push the keys in any order and still activate the Easter Egg.
Enter + lorocsfor example.I’d store the values you are looking for in order, like this:
Then, you can just keep track of where the user is in the sequence:
This will increment
nextKeyevery time you match the next key that you are looking for in the sequence. ThenextKeyvariable starts at the 0 index, which means we start looking forEnter. Now, we need to check for the end condition in theColorMapfunction.This solution should allow you to change the special sequence in the
keysvariable without requiring a change elsewhere in the code.EDIT:
If you want the answer to be contiguous, as you probably do, then you can reset the
nextKeyvariable when the match fails.For extra credit, you could switch this to use a string to hold the easter egg, then
String.fromCharCodeto convert it to the character code thate.whichreturns.