STE WILLIAMS

Fancy a T-shirt? Try our New Year’s #sophospuzzle crossword…

Are you working over the New Year?

Well, whatever you’re up to – but especially if you’re on sysadmin or tech support duty while the rest of us are partying – here’s a bit of fun that looks just like real work but isn’t. (Don’t let on that we said so.)

Presenting the NYE 2017 #sophospuzzle crossword:

“);
else
document.write(“”);
}
document.writeln(“”);
}
document.writeln(“”);

// Finally, show the crossword and hide the wait message.
Initialized = true;
document.getElementById(“waitmessage”).style.display = “none”;
document.getElementById(“crossword”).style.display = “block”;
}

// * * * * * * * * * *
// Event handlers

// Raised when a key is pressed in the word entry box.
function WordEntryKeyPress(event)
{
if (CrosswordFinished) return;
// Treat an Enter keypress as an OK click.
if (CurrentWord = 0 event.keyCode == 13) OKClick();
}

// * * * * * * * * * *
// Helper functions

// Called when we’re ready to start the crossword.
function BeginCrossword()
{
if (Initialized)
{
document.getElementById(“welcomemessage”).style.display = “”;
document.getElementById(“checkbutton”).style.display = “”;
}
}

// Returns true if the string passed in contains any characters prone to evil.
function ContainsBadChars(theirWord)
{
return !/^[a-z-]+$/i.test(theirWord);
}

// Pads a number out to three characters.
function PadNumber(number)
{
if (number = 0) OKClick();
DeselectCurrentWord();

// Determine the coordinates of the cell they clicked, and then the word that
// they clicked.
var target = (event.srcElement ? event.srcElement: event.target);
x = parseInt(target.id.substring(1, 4), 10);
y = parseInt(target.id.substring(4, 7), 10);

// If they clicked an intersection, choose the type of word that was NOT selected last time.
if (TableAcrossWord[x][y] = 0 TableDownWord[x][y] = 0)
CurrentWord = PrevWordHorizontal ? TableDownWord[x][y] : TableAcrossWord[x][y];
else if (TableAcrossWord[x][y] = 0)
CurrentWord = TableAcrossWord[x][y];
else if (TableDownWord[x][y] = 0)
CurrentWord = TableDownWord[x][y];

PrevWordHorizontal = (CurrentWord 0 TableCell.innerHTML != ” ” TableCell.innerHTML.toLowerCase() != ” “)
{
TheirWord += TableCell.innerHTML.toUpperCase();
TheirWordLength++;
}
else
{
TheirWord += “•”;
}
}

document.getElementById(“wordlabel”).innerHTML = TheirWord;
document.getElementById(“wordinfo”).innerHTML = ((CurrentWord WordLength[CurrentWord])
{
document.getElementById(“worderror”).innerHTML = “You typed too many letters. This word has ” + WordLength[CurrentWord] + ” letters.”;
document.getElementById(“worderror”).style.display = “block”;
return;
}

// If we made it this far, they typed an acceptable word, so add these letters to the puzzle and hide the entry box.
x = WordX[CurrentWord];
y = WordY[CurrentWord];
for (i = 0; i LastHorizontalWord ? i : 0));
TableCell.innerHTML = TheirWord.substring(i, i + 1);
}
DeselectCurrentWord();
}

// Called when the “check puzzle” link is clicked.
function CheckClick()
{
var i, j, x, y, UserEntry, ErrorsFound = 0, EmptyFound = 0, TableCell;
if (CrosswordFinished) return;
DeselectCurrentWord();

for (y = 0; y = 0 || TableDownWord[x][y] = 0)
{
TableCell = CellAt(x, y);
if (TableCell.className == “ecw-box ecw-boxerror_unsel”) TableCell.className = “ecw-box ecw-boxnormal_unsel”;
}

for (i = 0; i 0 TableCell.innerHTML.toLowerCase() != ” “)
{
UserEntry += TableCell.innerHTML.toUpperCase();
}
else
{
UserEntry = “”;
EmptyFound++;
break;
}
}
UserEntry = UserEntry.replace(/AMP;/g, ”);
// If this word doesn’t match, it’s an error.
if (HashWord(UserEntry) != AnswerHash[i] UserEntry.length 0)
{
ErrorsFound++;
ChangeWordStyle(i, “ecw-box ecw-boxerror_unsel”);
}
}

// If they can only check once, disable things prematurely.
if ( OnlyCheckOnce )
{
CrosswordFinished = true;
document.getElementById(“checkbutton”).style.display = “none”;
}

// If errors were found, just exit now.
if (ErrorsFound 0 EmptyFound 0)
document.getElementById(“welcomemessage”).innerHTML = ErrorsFound + (ErrorsFound 1 ? ” errors” : ” error”) + ” and ” + EmptyFound + (EmptyFound 1 ? ” incomplete words were” : ” incomplete word was”) + ” found.”;
else if (ErrorsFound 0)
document.getElementById(“welcomemessage”).innerHTML = ErrorsFound + (ErrorsFound 1 ? ” errors were” : ” error was”) + ” found.”;
else if (EmptyFound 0)
document.getElementById(“welcomemessage”).innerHTML = “No errors were found, but ” + EmptyFound + (EmptyFound 1 ? ” incomplete words were” : ” incomplete word was”) + ” found.”;

if (ErrorsFound + EmptyFound 0)
{
document.getElementById(“welcomemessage”).style.display = “”;
return;
}

// They finished the puzzle!
CrosswordFinished = true;
document.getElementById(“checkbutton”).style.display = “none”;
document.getElementById(“congratulations”).style.display = “block”;
document.getElementById(“welcomemessage”).style.display = “none”;
}

// Called when the “cheat” link is clicked.
function CheatClick()
{
if (CrosswordFinished) return;
var OldWord = CurrentWord;
document.getElementById(“wordentry”).value = Word[CurrentWord];
OKClick();
ChangeWordStyle(OldWord, “ecw-box ecw-boxcheated_unsel”);
}

// Returns a one-way hash for a word.
function HashWord(Word)
{
var x = (Word.charCodeAt(0) * 719) % 1138;
var Hash = 837;
var i;
for (i = 1; i

Welcome!

Click a word in the puzzle to get started.

Congratulations!

You have completed this crossword puzzle. Don’t forget to take a screenshot and send it to [email protected] if you want to try to win a T-shirt!

There’s a Sophos T-shirt for the for the first correct solution received, and a T-shirt for a one other successful solver chosen from the rest of the correct answers received in time.

The cutoff for entries to be eligible for a T-shirt is 2018-01-02T12:00T-10 (that’s noon in Hawaii on the day after New Year’s Day).

If you get stuck, try a search engine; if you’re still stuck after that, try following @NakedSecurity on Twitter, and keep your eye on the hashtag #sophospuzzle.

(All we ask is that you don’t spoil it for other people – public hints and teasers are fine, but please don’t blurt out complete answers.)

You are also welcome to email us for hints on [email protected] if you don’t use Twitter, or if you want to keep your hints to yourself.

To try for a T-shirt, take a screenshot when you have finished the puzzle, and email it to us.

Please put the text SOLUTION at the start of the subject line, and let us know in the email if you’re OK with being named amongst the solvers.

You can tell us some or all of: your name, nickname, city, country and Twitter handle – or choose to stay anonymous. (We’ll only use your email address to contact you if you win a shirt – we won’t add you to any mailing lists, honest)

Good luck with your puzzling, and, from the Naked Security team, Happy New Year!

LEADERBOARD


Article source: http://feedproxy.google.com/~r/nakedsecurity/~3/HnQrAyIqqCo/

Comments are closed.