/** * Inisialisasi variabel global / konfigurasi */ var level = 1, // level awal max_digit = 2, // digit jawaban maksimal delay = 3, // delay dalam detik jika benar strike, kunci, jawab; // variabel global /** * Main function */ $(function() { /** * Inisialisasi program */ strikeZero(); kunci = initialize(); /** * Mencegah fokus keluar dari input jawaban */ $('#jawaban').blur(function(){ $(this).focus(); }); /** * Cek yang diketik oleh user */ $("#jawaban").on('keyup', function(e) { var string_val = $(this).val(); /** * Menyembunyikan tanda cek jawaban jika jawaban dihapus */ if(string_val.length<1) { $('#sign img').hide(); } /** * Memastikan jawaban tidak melebihi maksimal digit */ if(string_val.length>max_digit) { $('#jawaban').val(string_val.substring(0,max_digit)); } /** * User menekan tombol enter */ if (e.keyCode === 13) { jawab = parseInt(string_val); /** * Jawaban benar */ if(kunci==jawab) { $('#cross-sign').hide(); $('#check-sign').show(); $('#footer').append(''); strike++; setTimeout(function() { /** * Naik level */ if(strike>=rules[level-1].strike) { level++; strikeZero(); } kunci = initialize(); }, (delay * 1000)); /** * Jawaban salah */ } else { $('#cross-sign').show(); strikeZero(); } }; /** * Ulang dari awal */ $(document).on('click', '#restart', function(){ location.reload(); }); }); }); /** * Fungsi inisialisasi program * @returns {Number} kunci jawaban */ function initialize() { /** * Membuat soal */ var bil01 = randomInt(rules[level-1].min, rules[level-1].max), bil02 = randomInt(rules[level-1].min, rules[level-1].max), bil03; // kunci jawaban /** * Soal penjumlahan */ if(rules[level-1].type) { $('#soal').text(bil01 + ' + ' + bil02 + ' = '); bil03 = bil01 + bil02; /** * Soal pengurangan */ } else { if(bil01rules.length) { $('body').css('background-color', '#000'); $('#container').html(''); $('#footer').html(''); level = 1; /** * Reset strike */ } else { $('#footer').html('
Level ' + level + '
'); strike = 0; } } /** * Fungsi membuat angka acak * @param {Number} min nilai minimum * @param {Number} max nilai maksimum * @returns {Number} nilai acak */ function randomInt(min, max) { return Math.floor(Math.random() * (max - min + 1) + min); }