$(document).ready(function() { /****** CONFIGURATION ***********/ var max_questions = 15; var max_chrono = 5; var max_wait = 2; var max_infinite_errors = 5; /********************************/ /****** General variables ******/ var score = 0; var questions = 0; var good_answers = 0; var bad_answers = 0; var chrono = max_chrono; var infinite = false; // type of game var whole_set = false; // type of game var image_name; // preload var image_memory; // preload var gen_list = new Array(); var previous_pokemon = new Array(); /****** Generations ******/ var G1 = [1, 151]; var G2 = [152, 251]; var G3 = [252, 386]; var G4 = [387, 493]; var G5 = [494, 649]; var G6 = [650, 721]; var G7 = [722, 809]; var G8 = [810, 905]; var MEGA = [906, 955]; var GIGA = [956, 987]; var REG = [988, 1040]; /************ UTIL *************/ /*******************************/ function random(min, max) { return Math.floor(Math.random()*(max-min+1)+min); } function shuffleArray(array) { for (var i = array.length - 1; i > 0; i--) { var j = Math.floor(Math.random() * (i + 1)); var temp = array[i]; array[i] = array[j]; array[j] = temp; } return array; } function findInArray(array, elem, size) { for (var j = 0; j < array.length; j++) { if (array[j] === elem) return true; } return false; } /************ GAME *************/ /*******************************/ // loading json file var json = $.getJSON('pokemon.json', function(pk) { var pklist = pk; var pokemon_generation_list = new Array(); // starting the game for the first time and creating the layout function firstGame() { $('article #game').fadeToggle('quick', function() { document.removeEventListener('keydown', funcListener); $('article #container').append('
');
$('article #container #answers').empty().append('')
$('article #container #answers').append('')
$('article #container #answers').append('')
$('article #container #answers').append('')
// timer setting
var clock = setInterval(function() {
chrono--;
if (chrono === 0) {
clearInterval(clock);
showAnswer(false); // timer has ended, so it's a bad answer
}
$('article #container .chrono').empty().append(chrono);
}, 10000000);
// checking if the answer is good or not
$('article .option').click(function() {
clearInterval(clock);
($(this).attr('value') == answer) ? showAnswer(true) : showAnswer(false);
});
document.addEventListener('keydown', funcListener = function(event) {
function checkAnswer(v) {
clearInterval(clock);
($('#answers input.a'+v).attr('value') == answer) ? showAnswer(true) : showAnswer(false);
}
if (event.keyCode == 49 || event.keyCode == 72) checkAnswer(1);
else if (event.keyCode == 50 || event.keyCode == 74) checkAnswer(2);
else if (event.keyCode == 51 || event.keyCode == 75) checkAnswer(3);
else if (event.keyCode == 52 || event.keyCode == 76) checkAnswer(4);
});
function showAnswer(ok) {
document.removeEventListener('keydown', funcListener);
$('article .pokemon img').removeClass('silhouette');
if (ok) {
good_answers++;
$('article #answers').empty().append("That's right! \ The answer is "+ answer +"!
"); } else { bad_answers++; $('article #answers').empty().append("Too bad... \ The answer was "+ answer +"!
"); } choosePokemon(); var wait = max_wait; var clock = setInterval(function() { wait--; if (wait === 0) { if (!infinite) questions < max_questions ? game() : score(); else bad_answers < max_infinite_errors ? game() : score(); } }, 100000000); } function score() { function generateTwitterText() { var start_sentence = 'I got '; var end_sentence = 'Can you get a better score than me?'; var score_sentence = (Math.floor(good_answers/max_questions*100))+'% Pokémons right!' var questions_sentence = max_questions + " questions" if (!infinite) return start_sentence+score_sentence+" "+end_sentence; else return start_sentence+good_answers+" good Pokémon answers! "+end_sentence; } function generateSeed() { s_domain = "https://poketest.marchal.dev/index.html"; gen = ''; if (gen_list.length > 0) { for (i in gen_list) gen += gen_list[i].substring(0,1); } else gen += "all"; s_gen = "?gen=" + gen; s_lang = "&lang=" + lang; s_silhouette = "&silhouette=" + (silhouette == "silhouette" ? "true" : "false"); s_questions = "&questions=" + (!whole_set? max_questions : "set"); s_time = "&time=" + max_chrono; // save in the local storage for default use localStorage.setItem('generation', gen); localStorage.setItem('lang', lang); localStorage.setItem('silhouette', silhouette); localStorage.setItem('questions', (!whole_set? max_questions : "set")); localStorage.setItem('time', max_chrono); return s_domain + s_gen + s_lang + s_silhouette + s_questions + s_time; } $('article #container #score .pokemon').after(''); $('article #container').addClass('diploma'); $('article #container').removeClass('game_active'); $('article #container .chrono').hide(); if (!infinite) $('article #container .pokemon').empty().append("Score: "+(Math.floor(good_answers/max_questions*100))+"%
"); else $('article #container .pokemon').empty().append("Score: "+good_answers+" good answer"+(good_answers>1?("s"):"")+"!
"); $('article #container #seed').empty().append('Share your configuration
'); $('article #container #share').empty().append('Tweet'); $.getScript("//platform.twitter.com/widgets.js"); // for the twitter button to work $('article #container #answers').remove(); // until play again is fixed //$('article #container #answers').empty().append(''); // copy seed in clipboard $("article #container #copyseed").click(function() { $('article #container #seed input').select(); document.execCommand("copy"); }); $('article #container .button input.start_again').click(function() { score = questions = good_answers = bad_answers = 0; chrono = max_chrono; $('article #container .chrono').show(); $('article #container').removeClass('diploma'); game(); }); } } }); });