change demo url
This commit is contained in:
@@ -1,2 +1,2 @@
|
||||
var sw = {};
|
||||
sw.apiPrefix = './';
|
||||
sw.apiPrefix = './';
|
||||
|
140
app/js/index.js
140
app/js/index.js
@@ -1,13 +1,13 @@
|
||||
if (typeof(sw) == 'undefined') {
|
||||
if (typeof (sw) == 'undefined') {
|
||||
var sw = {};
|
||||
sw.apiPrefix = '/';
|
||||
sw.apiPrefix = '/';
|
||||
}
|
||||
|
||||
|
||||
(function($) {
|
||||
|
||||
|
||||
//helper functions
|
||||
|
||||
|
||||
// helper functions
|
||||
var shuffle = function(myArray) {
|
||||
var i = myArray.length, j, tempi, tempj;
|
||||
if (i === 0)
|
||||
@@ -19,57 +19,66 @@ if (typeof(sw) == 'undefined') {
|
||||
myArray[i] = tempj;
|
||||
myArray[j] = tempi;
|
||||
}
|
||||
|
||||
|
||||
return myArray;
|
||||
};
|
||||
|
||||
|
||||
var getKey = function(obj) {
|
||||
var word = [];
|
||||
for(var k in obj) word.push(k);
|
||||
for ( var k in obj)
|
||||
word.push(k);
|
||||
return word[0];
|
||||
};
|
||||
|
||||
|
||||
var selectWordsForGame = function() {
|
||||
//select a random word from the list
|
||||
// select a random word from the list
|
||||
var words = sw.words[Math.round(Math.random() * sw.words.length)];
|
||||
|
||||
|
||||
var word = getKey(words);
|
||||
var similar = shuffle(words[word]);
|
||||
|
||||
similar = similar.slice(0, 3);
|
||||
similar.push(word);
|
||||
similar = shuffle(similar);
|
||||
|
||||
return {word: word, similar: similar};
|
||||
|
||||
return {
|
||||
word: word,
|
||||
similar: similar
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
var startGame = function(word) {
|
||||
if(typeof(word) == 'undefined') {
|
||||
if (typeof (word) == 'undefined') {
|
||||
word = selectWordsForGame();
|
||||
}
|
||||
sw.currentWord = word;
|
||||
$("#main").empty().html('views/index.ejs', word);
|
||||
$('.currentword').animate({
|
||||
opacity : 0
|
||||
opacity: 0
|
||||
}, 1000, 'linear');
|
||||
};
|
||||
|
||||
|
||||
var gameOver = function() {
|
||||
var result = 'AWESOME!';
|
||||
|
||||
if (sw.finaltime > 33) {
|
||||
result = 'You can do better!';
|
||||
};
|
||||
}
|
||||
if (sw.finaltime > 36) {
|
||||
result = 'meh...';
|
||||
};
|
||||
}
|
||||
if (sw.wrongWords > 0 && sw.finaltime <= 32) {
|
||||
result = 'You are fast, but you made errors';
|
||||
};
|
||||
|
||||
$("#main").empty().html('views/gameover.ejs', {result: result, time: sw.finaltime, wrong: sw.wrongWords, correct: sw.correctWords});
|
||||
result = 'You are fast, but you made errors';
|
||||
}
|
||||
|
||||
$("#main").empty().html('views/gameover.ejs', {
|
||||
result: result,
|
||||
time: sw.finaltime,
|
||||
wrong: sw.wrongWords,
|
||||
correct: sw.correctWords
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
var startNewGame = function() {
|
||||
var playforrounds = 20;
|
||||
sw.correctWords = 0;
|
||||
@@ -77,13 +86,13 @@ if (typeof(sw) == 'undefined') {
|
||||
sw.wrongWords = 0;
|
||||
sw.time = Math.round((new Date()).getTime() / 1000);
|
||||
sw.gameover = false;
|
||||
|
||||
|
||||
var updateBadges = function() {
|
||||
$('.num-of-words-wrong').html(sw.wrongWords + (sw.wrongWords == 1 ? ' word' : ' words'));
|
||||
$('.num-of-words').html(sw.correctWords + (sw.correctWords == 1 ? ' word' : ' words'));
|
||||
$('.time-words').html(Math.round((new Date()).getTime() / 1000) - sw.time);
|
||||
|
||||
if(playforrounds >= sw.rounds) {
|
||||
|
||||
if (playforrounds >= sw.rounds) {
|
||||
setTimeout(function() {
|
||||
updateBadges();
|
||||
}, 100);
|
||||
@@ -93,57 +102,57 @@ if (typeof(sw) == 'undefined') {
|
||||
}
|
||||
};
|
||||
updateBadges();
|
||||
|
||||
|
||||
startGame();
|
||||
};
|
||||
|
||||
|
||||
var loadDictionary = function(dict) {
|
||||
var w = $.ajax({
|
||||
url: sw.apiPrefix + 'words_' + dict + '.json',
|
||||
dataType: 'json'
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
w.done(function(words) {
|
||||
var start = $('.start');
|
||||
var start = $('.start');
|
||||
start.removeClass('disabled');
|
||||
start.html(' Start ');
|
||||
start.animate({
|
||||
opacity : 1
|
||||
opacity: 1
|
||||
}, 1000, 'linear');
|
||||
|
||||
|
||||
sw.words = words.words;
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
w.fail(function(err) {
|
||||
console.log(err);
|
||||
});
|
||||
|
||||
|
||||
return w;
|
||||
};
|
||||
|
||||
//events
|
||||
|
||||
// events
|
||||
$(document).on('click', '.dict', function(ev) {
|
||||
var el = $(ev.currentTarget);
|
||||
var dict = el.attr('data-dict');
|
||||
$('.start-btn').html('views/start-button.ejs', {});
|
||||
loadDictionary(dict);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
$(document).on('click', '.start', function() {
|
||||
startNewGame();
|
||||
});
|
||||
|
||||
$(document).on('click', '.word-button', function(ev) {
|
||||
var el = $(ev.currentTarget);
|
||||
|
||||
|
||||
if (el.hasClass('disabled')) {
|
||||
return;
|
||||
}
|
||||
$('.word-button').addClass('disabled');
|
||||
|
||||
var wrongWord = undefined;
|
||||
if(sw.currentWord.word == el.html()) {
|
||||
|
||||
var wrongWord;
|
||||
if (sw.currentWord.word == el.html()) {
|
||||
sw.correctWords = sw.correctWords + 1;
|
||||
sw.rounds += 1;
|
||||
el.addClass('btn-success');
|
||||
@@ -152,18 +161,18 @@ if (typeof(sw) == 'undefined') {
|
||||
sw.wrongWords = sw.wrongWords + 1;
|
||||
el.addClass('btn-danger');
|
||||
}
|
||||
|
||||
|
||||
setTimeout(function() {
|
||||
if(sw.gameover) {
|
||||
if (sw.gameover) {
|
||||
gameOver();
|
||||
} else {
|
||||
startGame(wrongWord);
|
||||
}
|
||||
}, 300);
|
||||
});
|
||||
|
||||
|
||||
//globals
|
||||
|
||||
|
||||
// globals
|
||||
sw.words = [];
|
||||
sw.correctWords = 0;
|
||||
sw.wrongWords = 0;
|
||||
@@ -171,30 +180,29 @@ if (typeof(sw) == 'undefined') {
|
||||
sw.time = 0;
|
||||
sw.finaltime = 0;
|
||||
sw.gameover = false;
|
||||
sw.currentWord;
|
||||
sw.currentWord = '';
|
||||
})(jQuery);
|
||||
|
||||
|
||||
|
||||
//utils
|
||||
// utils
|
||||
(function() {
|
||||
window.Utils = {};
|
||||
|
||||
Utils.ellipsis = function(text, maxLength){
|
||||
if(typeof maxLength === 'undefined'){
|
||||
maxLength = 9000; //a large number
|
||||
}
|
||||
|
||||
if (text.length <= maxLength)
|
||||
return text;
|
||||
Utils.ellipsis = function(text, maxLength) {
|
||||
if (typeof maxLength === 'undefined') {
|
||||
maxLength = 9000; // a large number
|
||||
}
|
||||
|
||||
var xMaxFit = maxLength - 1;
|
||||
var xTruncateAt = text.lastIndexOf(' ', xMaxFit);
|
||||
if (xTruncateAt == -1 || xTruncateAt < maxLength / 2)
|
||||
xTruncateAt = xMaxFit;
|
||||
if (text.length <= maxLength)
|
||||
return text;
|
||||
|
||||
return text.substr(0, xTruncateAt) + "…";
|
||||
};
|
||||
var xMaxFit = maxLength - 1;
|
||||
var xTruncateAt = text.lastIndexOf(' ', xMaxFit);
|
||||
if (xTruncateAt == -1 || xTruncateAt < maxLength / 2)
|
||||
xTruncateAt = xMaxFit;
|
||||
|
||||
return text.substr(0, xTruncateAt) + "…";
|
||||
};
|
||||
|
||||
})();
|
||||
|
||||
|
Reference in New Issue
Block a user