// Note: The code below contains spoilers for the puzzle Race for the Galaxy!
var PUZZLE_TEMPLATE = (function() {
function render(args) {
var puzzle_type = args.puzzle_type;
var puzzle_num = args.puzzle_num;
var puzzle = args.puzzle;
var out = '';
function get_color(c) {
if (c == 'R') return 'red';
else if (c == 'B') return 'blue';
else if (c == 'G') return 'green';
else if (c == 'Y') return 'yellow';
}
if (puzzle_type == 'META') {
out += '
Meta Puzzle
';
} else {
out += `Puzzle #${puzzle_num}
`;
}
if (puzzle_type == 'ENCODINGS') {
for (var encoding of puzzle) {
if (encoding[0] == 'morse') {
out += `${encoding[1]}
`;
} else {
out += ``;
out += `
`;
}
}
} else if (puzzle_type == 'ANAGRAMS') {
out += '';
for (var anagram of puzzle) {
out += `- ${anagram}
`;
}
out += '
';
} else if (puzzle_type == 'DROPQUOTE') {
out += '';
out += '';
for (var bucket of puzzle['buckets']) {
out += `
${bucket}
| `;
}
out += '
';
for (var row of puzzle['grid']) {
out += '';
for (var cell of row) {
if (cell) {
out += `
| `;
} else {
out += `
| `;
}
}
out += '
';
}
out += '
';
} else if (puzzle_type == 'CRYPTOGRAM') {
out += `${puzzle}
`;
} else if (puzzle_type == 'WORDSEARCH') {
out += ``;
for (var row of puzzle['grid']) {
out += ``;
for (var cell of row) {
out += ` ${cell} | `;
}
out += `
`;
}
out += `
`;
out += ``;
for (const word of puzzle['words'].sort()) {
out += `- ${word}
`;
}
out += `
`;
} else if (puzzle_type == 'ACTORS') {
for (var url of puzzle) {
out += ``;
}
} else if (puzzle_type == 'WORDSQUARE') {
out += ``;
for (var row of puzzle) {
out += ``;
for (var cell of row) {
out += ` ${cell} | `;
}
out += `
`;
}
out += `
`;
} else if (puzzle_type == 'SPOTTHEDIFFERENCE') {
out += `
`;
for (var row of puzzle['grid1']) {
out += ``;
for (var cell of row) {
out += `
${cell[0]} | `;
}
out += ` `;
}
out += `
|
`;
for (var row of puzzle['grid2']) {
out += ``;
for (var cell of row) {
out += `
${cell[0]} | `;
}
out += ` `;
}
out += `
|
`;
for (var row of puzzle['letters']) {
out += ``;
for (var cell of row) {
out += ` ${ cell } | `
}
out += ` `;
}
out += `
|
`;
} else if (puzzle_type == 'LOGIC') {
out += ` Select all correct statements.
`;
for (var subpuzzle of puzzle) {
out += `-
Which of the following statements is correct?
`
for (var statement of subpuzzle) {
out += `- ${statement}
`;
}
out += `
`;
}
out += `
`;
} else if (puzzle_type == 'CRYPTOGRAMSEARCH') {
out += ``;
for (var row of puzzle['grid']) {
out += ``;
for (var cell of row) {
out += ` ${cell} | `;
}
out += `
`;
}
out += `
`;
out += ``;
for (var word of puzzle['words'].sort()) {
out += `- ${word}
`;
}
out += '
';
}
return out;
}
return {
render: render,
};
})();