Lucas Kent e39465ad2f Changes to be committed:
new file:   Files/flashplayer_32_sa.exe
	new file:   favicon.ico
	new file:   globe.gif
	new file:   imgs/download.png
	new file:   imgs/zuck.jpg
	new file:   index.html
	new file:   other.ico
	new file:   script.js
	new file:   site.webmanifest
	new file:   sitemap.html
	new file:   styles/backround.css
	new file:   styles/border.css
	new file:   styles/fonts/Titillium_Web/OFL.txt
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-Black.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-Bold.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-BoldItalic.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-ExtraLight.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-ExtraLightItalic.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-Italic.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-Light.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-LightItalic.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-Regular.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-SemiBold.ttf
	new file:   styles/fonts/Titillium_Web/TitilliumWeb-SemiBoldItalic.ttf
	new file:   styles/fonts/webfontkit-20221027-163353/generator_config.txt
	new file:   styles/fonts/webfontkit-20221027-163353/specimen_files/grid_12-825-55-15.css
	new file:   styles/fonts/webfontkit-20221027-163353/specimen_files/specimen_stylesheet.css
	new file:   styles/fonts/webfontkit-20221027-163353/stylesheet.css
	new file:   styles/fonts/webfontkit-20221027-163353/titilliumweb-extralight-demo.html
	new file:   styles/fonts/webfontkit-20221027-163353/titilliumweb-extralight-webfont.woff
	new file:   styles/fonts/webfontkit-20221027-163353/titilliumweb-extralight-webfont.woff2
	new file:   styles/fonts/webfontkit-20221027-165950/generator_config.txt
	new file:   styles/fonts/webfontkit-20221027-165950/specimen_files/grid_12-825-55-15.css
	new file:   styles/fonts/webfontkit-20221027-165950/specimen_files/specimen_stylesheet.css
	new file:   styles/fonts/webfontkit-20221027-165950/stylesheet.css
	new file:   styles/fonts/webfontkit-20221027-165950/titilliumweb-bold-demo.html
	new file:   styles/fonts/webfontkit-20221027-165950/titilliumweb-bold-webfont.woff
	new file:   styles/fonts/webfontkit-20221027-165950/titilliumweb-bold-webfont.woff2
	new file:   styles/style.css
	new file:   tools/2048/.gitignore
	new file:   tools/2048/.jshintrc
	new file:   tools/2048/CONTRIBUTING.md
	new file:   tools/2048/LICENSE.txt
	new file:   tools/2048/README.md
	new file:   tools/2048/Rakefile
	new file:   tools/2048/favicon.ico
	new file:   tools/2048/index.html
	new file:   tools/2048/js/animframe_polyfill.js
	new file:   tools/2048/js/application.js
	new file:   tools/2048/js/bind_polyfill.js
	new file:   tools/2048/js/classlist_polyfill.js
	new file:   tools/2048/js/game_manager.js
	new file:   tools/2048/js/grid.js
	new file:   tools/2048/js/html_actuator.js
	new file:   tools/2048/js/keyboard_input_manager.js
	new file:   tools/2048/js/local_storage_manager.js
	new file:   tools/2048/js/tile.js
    new file:   tools/2048/meta/apple-touch-icon.png
	new file:   tools/webretro/cores/neocd_libretro.js
	new file:   tools/webretro/cores/neocd_libretro.wasm
	new file:   tools/webretro/cores/nestopia_libretro.js
	new file:   tools/webretro/cores/nestopia_libretro.wasm
	new file:   tools/webretro/cores/o2em_libretro.js
	new file:   tools/webretro/cores/o2em_libretro.wasm
	new file:   tools/webretro/cores/opera_libretro.js
	new file:   tools/webretro/cores/opera_libretro.wasm
2022-11-02 08:40:01 -04:00

121 lines
13 KiB
JavaScript

//Generate by BABEL -:)
'use strict';
//DESIGN
//loading page:
//en meme temps
//page blanche vers page noir
//iphone cocke noir vers iphone cocke blanche
//https://tympanus.net/codrops/2016/10/12/animated-decorative-lines/
(function () {
var arrSign = ['-', '+', '/', '*', 'x'],
arr = [],
result = 0,
printCalcul = '',
arrSort = void 0,
strSign = void 0,
error = void 0,
screen = document.querySelector('.screen span'),
ele = document.querySelectorAll('.touche__box-item > span'),
equal = document.querySelector('.sign-equal'),
clear = document.querySelector('.clear-item span');
//operation
for (var i = 0; i < ele.length; i++) {
ele[i].addEventListener('click', function (e) {
var cible = e.target.innerHTML === '_' ? cible = '-' : e.target.innerHTML;
//on memorise dans le tableau
arr.push(cible);
//printCalcul display the screen
printCalcul += cible;
screen.innerHTML = printCalcul;
e.preventDefault();
});
}
clear.addEventListener('click', function (e) {
screen.innerHTML = 'screen';
arr.splice(0, arr.length);
printCalcul = '';
screen.classList.remove('error');
e.preventDefault();
});
error = function error(strSignMessage) {
screen.innerHTML = 'err with sign ' + strSignMessage;
screen.classList.add('error');
};
equal.addEventListener('click', function (e) {
result = 0;
strSign = arr.join('');
//return an array with the number together
arrSort = strSign.match(/(\d+)|\D/g); //[ '4', '-', '94', '-', '8' ]
for (var _i = 0, l = arrSort.length; _i < l; _i++) {
var current = arrSort[_i],
prev = arrSort[_i - 1],
next = arrSort[_i + 1];
prev = prev !== undefined && arrSign.indexOf(prev) === -1 ? parseInt(prev, 10) : '';
next = next !== undefined && arrSign.indexOf(next) === -1 ? parseInt(next, 10) : '';
//debugger
//
// if value current it's a sign: +-/*x
if (arrSign.indexOf(current) >= 0) {
if (current === '+') {
if (_i === 1) {
//if is the first sign +-/* we're count the prev and next element
result = prev + next;
//console.log(result + ' : ' + i + ' : ' + arrSort[i] + ' : ' + arrSort[j] );
} else if (_i > 1) {
result += next;
//console.log(result + ' : ' + i + ' : ' + arrSort[i+1]);
} else if (_i === 0) {
error('+');
break;
}
}
if (current === '-') {
if (_i === 1) {
//first sign +-/*
result = prev - next;
//console.log(result + ' - ' + ' : ' + i + ' : ' + arrSort[i] + ' : ' + arrSort[j] );
} else if (_i > 1) {
result -= next;
//console.log(result + ' - ' +' : ' + i + ' : ' + arrSort[i+1]);
} else if (_i === 0) {
error('-');
break;
}
}
if (current === 'x') {
if (_i === 1) {
//first sign +-/*
result += prev * next;
} else if (_i > 1) {
result *= next;
//console.log(result + ' * ' +' : ' + i + ' : ' + arrSort[i+1]);
} else if (_i === 0) {
error('*');
break;
}
}
if (current === '/') {
if (_i === 1) {
//first sign +-/*
result += prev / next;
} else if (_i > 1) {
result /= next;
} else if (_i === 0) {
error('/');
break;
}
}
}
}
if (!screen.classList.contains('error')) {
screen.innerHTML = result;
}
e.preventDefault();
}); //end click equal
})(); //END
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjcmlwdC5qcyJdLCJuYW1lcyI6WyJhcnJTaWduIiwiYXJyIiwicmVzdWx0IiwicHJpbnRDYWxjdWwiLCJhcnJTb3J0Iiwic3RyU2lnbiIsImVycm9yIiwic2NyZWVuIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiZWxlIiwicXVlcnlTZWxlY3RvckFsbCIsImVxdWFsIiwiY2xlYXIiLCJpIiwibGVuZ3RoIiwiYWRkRXZlbnRMaXN0ZW5lciIsImUiLCJjaWJsZSIsInRhcmdldCIsImlubmVySFRNTCIsInB1c2giLCJwcmV2ZW50RGVmYXVsdCIsInNwbGljZSIsImNsYXNzTGlzdCIsInJlbW92ZSIsInN0clNpZ25NZXNzYWdlIiwiYWRkIiwiam9pbiIsIm1hdGNoIiwibCIsImN1cnJlbnQiLCJwcmV2IiwibmV4dCIsInVuZGVmaW5lZCIsImluZGV4T2YiLCJwYXJzZUludCIsImNvbnRhaW5zIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0U7QUFDRTtBQUNFO0FBQ0E7QUFDTjtBQUNDLGFBQVc7O0FBRVYsTUFBSUEsVUFBUSxDQUFDLEdBQUQsRUFBSyxHQUFMLEVBQVMsR0FBVCxFQUFhLEdBQWIsRUFBaUIsR0FBakIsQ0FBWjtBQUFBLE1BQWtDQyxNQUFJLEVBQXRDO0FBQUEsTUFDRUMsU0FBTyxDQURUO0FBQUEsTUFDWUMsY0FBWSxFQUR4QjtBQUFBLE1BQzRCQyxnQkFENUI7QUFBQSxNQUNxQ0MsZ0JBRHJDO0FBQUEsTUFDOENDLGNBRDlDO0FBQUEsTUFFRUMsU0FBU0MsU0FBU0MsYUFBVCxDQUF1QixjQUF2QixDQUZYO0FBQUEsTUFHRUMsTUFBTUYsU0FBU0csZ0JBQVQsQ0FBMEIsMEJBQTFCLENBSFI7QUFBQSxNQUlFQyxRQUFRSixTQUFTQyxhQUFULENBQXVCLGFBQXZCLENBSlY7QUFBQSxNQUtFSSxRQUFRTCxTQUFTQyxhQUFULENBQXVCLG1CQUF2QixDQUxWOztBQU9BO0FBQ0EsT0FBSyxJQUFJSyxJQUFJLENBQWIsRUFBZ0JBLElBQUlKLElB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QixZQUFZLEdBQWhCLEVBQXFCO0FBQ25CLGNBQUlqQixPQUFNLENBQVYsRUFBYTtBQUFDO0FBQ1paLHNCQUFVOEIsT0FBT0MsSUFBakI7QUFDRCxXQUZELE1BRU0sSUFBSW5CLEtBQUksQ0FBUixFQUFXO0FBQ2ZaLHNCQUFVK0IsSUFBVjtBQUNBO0FBQ0QsV0FISyxNQUdDLElBQUduQixPQUFNLENBQVQsRUFBVztBQUNoQlIsa0JBQU0sR0FBTjtBQUNBO0FBQ0Q7QUFDRjtBQUNELFlBQUl5QixZQUFZLEdBQWhCLEVBQXFCO0FBQ25CLGNBQUlqQixPQUFNLENBQVYsRUFBYTtBQUFDO0FBQ1paLHNCQUFVOEIsT0FBT0MsSUFBakI7QUFDRCxXQUZELE1BRU0sSUFBSW5CLEtBQUksQ0FBUixFQUFXO0FBQ2ZaLHNCQUFVK0IsSUFBVjtBQUNELFdBRkssTUFFQyxJQUFHbkIsT0FBTSxDQUFULEVBQVc7QUFDaEJSLGtCQUFNLEdBQU47QUFDQTtBQUNEO0FBQ0Y7QUFDRjtBQUVGO0FBQ0QsUUFBSSxDQUFDQyxPQUFPaUIsU0FBUCxDQUFpQmEsUUFBakIsQ0FBMEIsT0FBMUIsQ0FBTCxFQUF5QztBQUN2QzlCLGFBQU9hLFNBQVAsR0FBbUJsQixNQUFuQjtBQUNEO0FBQ0RlLE1BQUVLLGNBQUY7QUFDRCxHQWpFRCxFQWxDVSxDQW1HTjtBQUVMLENBckdBLEdBQUQsQyxDQXFHSyIsImZpbGUiOiJzY3JpcHQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvL0RFU0lHTlxuICAvL2xvYWRpbmcgcGFnZTogXG4gICAgLy9lbiBtZW1lIHRlbXBzXG4gICAgICAvL3BhZ2UgYmxhbmNoZSB2ZXJzIHBhZ2Ugbm9pclxuICAgICAgLy9pcGhvbmUgY29ja2Ugbm9pciB2ZXJzIGlwaG9uZSBjb2NrZSBibGFuY2hlXG4vL2h0dHA6Ly90eW1wYW51cy5uZXQvY29kcm9wcy8yMDE2LzEwLzEyL2FuaW1hdGVkLWRlY29yYXRpdmUtbGluZXMvXG4oZnVuY3Rpb24oKSB7XG5cbiAgbGV0IGFyclNpZ249WyctJywnKycsJy8nLCcqJywneCddLGFycj1bXSwgXG4gICAgcmVzdWx0PTAsIHByaW50Q2FsY3VsPScnLCBhcnJTb3J0LCBzdHJTaWduLCBlcnJvcixcbiAgICBzY3JlZW4gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuc2NyZWVuIHNwYW4nKSxcbiAgICBlbGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcudG91Y2hlX19ib3gtaXRlbSA+IHNwYW4nKSwgXG4gICAgZXF1YWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuc2lnbi1lcXVhbCcpLFxuICAgIGNsZWFyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmNsZWFyLWl0ZW0gIHNwYW4nKVxuXG4gIC8vb3BlcmF0aW9uXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZWxlLmxlbmd0aDsgaSsrKSB7XG4gICAgZWxlW2ldLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGUpID0+e1xuICAgICAgbGV0IGNpYmxlID0gKGUudGFyZ2V0LmlubmVySFRNTCA9PT0gJ18nKSA/IGNpYmxlPSctJyA6IGUudGFyZ2V0LmlubmVySFRNTCBcbiAgICAgIC8vb24gbWVtb3Jpc2UgZGFucyBsZSB0YWJsZWF1XG4gICAgICBhcnIucHVzaChjaWJsZSlcbiAgICAgIC8vcHJpbnRDYWxjdWwgZGlzcGxheSB0aGUgc2NyZWVuXG4gICAgICBwcmludENhbGN1bCArPSBjaWJsZVxuICAgICAgc2NyZWVuLmlubmVySFRNTCA9IHByaW50Q2FsY3VsXG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgfSk7XG4gIH1cbiAgY2xlYXIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4ge1xuICAgIHNjcmVlbi5pbm5lckhUTUwgPSAnc2NyZWVuJ1xuICAgIGFyci5zcGxpY2UoMCxhcnIubGVuZ3RoKVxuICAgIHByaW50Q2FsY3VsID0nJ1xuICAgIHNjcmVlbi5jbGFzc0xpc3QucmVtb3ZlKCdlcnJvcicpXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICB9KTtcblxuICBlcnJvciA9IChzdHJTaWduTWVzc2FnZSkgPT4ge1xuICAgIHNjcmVlbi5pbm5lckhUTUwgPSAnZXJyIHdpdGggc2lnbiAnICsgc3RyU2lnbk1lc3NhZ2UgXG4gICAgc2NyZWVuLmNsYXNzTGlzdC5hZGQoJ2Vycm9yJylcbiAgfVxuICBcbiAgZXF1YWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4ge1xuICAgIHJlc3VsdCA9IDBcbiAgICBzdHJTaWduICAgPSBhcnIuam9pbignJylcbiAgICAvL3JldHVybiBhbiBhcnJheSB3aXRoIHRoZSBudW1iZXIgdG9nZXRoZXJcbiAgICBhcnJTb3J0ID0gc3RyU2lnbi5tYXRjaCgvKFxcZCspfFxcRC9nKTsgLy9bICc0JywgJy0nLCAnOTQnLCAnLScsICc4JyBdXG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSBhcnJTb3J0Lmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgbGV0IGN1cnJlbnQgPSBhcnJTb3J0W2ldLCBwcmV2ID0gYXJyU29ydFtpLTFdLCBuZXh0PWFyclNvcnRbaSsxXTtcbiAgICAgIHByZXYgPSAocHJldiAhPT0gdW5kZWZpbmVkICYmIGFyclNpZ24uaW5kZXhPZihwcmV2KSA9PT0gLTEgKSA/IHBhcnNlSW50KHByZXYsMTApIDogJydcbiAgICAgIG5leHQgPSAobmV4dCAhPT0gdW5kZWZpbmVkICYmIGFyclNpZ24uaW5kZXhPZihuZXh0KSA9PT0gLTEgKSA/IHBhcnNlSW50KG5leHQsMTApIDogJydcbiAgICAgIC8vZGVidWdnZXJcbiAgICAgIC8vXG4gICAgICAvLyBpZiB2YWx1ZSBjdXJyZW50IGl0J3MgYSBzaWduOiArLS8qeCBcbiAgICAgIGlmKGFyclNpZ24uaW5kZXhPZihjdXJyZW50KSA+PSAwKSB7XG4gICAgICAgIGlmIChjdXJyZW50ID09PSAnKycpIHtcbiAgICAgICAgICBpZiAoaSA9PT0gMSkgey8vaWYgaXMgdGhlIGZpcnN0IHNpZ24gKy0vKiB3ZSdyZSBjb3VudCB0aGUgcHJldiBhbmQgbmV4dCBlbGVtZW50XG4gICAgICAgICAgICByZXN1bHQgPSBwcmV2ICsgbmV4dFxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhyZXN1bHQgKyAnIDogJyArIGkgKyAnIDogJyArIGFyclNvcnRbaV0gKyAnIDogJyArIGFyclNvcnRbal0gKTtcbiAgICAgICAgICB9ZWxzZSBpZiAoaSA+IDEpIHtcbiAgICAgICAgICAgIHJlc3VsdCArPSBuZXh0IFxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhyZXN1bHQgKyAnIDogJyArIGkgKyAnIDogJyArIGFyclNvcnRbaSsxXSk7XG4gICAgICAgICAgfSBlbHNlIGlmKGkgPT09IDApe1xuICAgICAgICAgICAgZXJyb3IoJysnKVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9IFxuICAgICAgICB9XG4gICAgICAgIGlmIChjdXJyZW50ID09PSAnLScpIHtcbiAgICAgICAgICBpZiAoaSA9PT0gMSkgey8vZmlyc3Qgc2lnbiArLS8qXG4gICAgICAgICAgICByZXN1bHQgPSBwcmV2IC0gbmV4dFxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhyZXN1bHQgKyAnIC0gJyArICcgOiAnICsgaSArICcgOiAnICsgYXJyU29ydFtpXSArICcgOiAnICsgYXJyU29ydFtqXSApO1xuICAgICAgICAgIH1lbHNlIGlmIChpID4gMSkge1xuICAgICAgICAgICAgcmVzdWx0IC09IG5leHQgXG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKHJlc3VsdCArICcgLSAnICsnIDogJyArIGkgKyAnIDogJyArIGFyclNvcnRbaSsxXSk7XG4gICAgICAgICAgfSBlbHNlIGlmKGkgPT09IDApe1xuICAgICAgICAgICAgZXJyb3IoJy0nKVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9IFxuICAgICAgICB9XG4gICAgICAgIGlmIChjdXJyZW50ID09PSAneCcpIHtcbiAgICAgICAgICBpZiAoaSA9PT0gMSkgey8vZmlyc3Qgc2lnbiArLS8qXG4gICAgICAgICAgICByZXN1bHQgKz0gcHJldiAqIG5leHRcbiAgICAgICAgICB9ZWxzZSBpZiAoaSA+IDEpIHtcbiAgICAgICAgICAgIHJlc3VsdCAqPSBuZXh0IFxuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhyZXN1bHQgKyAnICogJyArJyA6ICcgKyBpICsgJyA6ICcgKyBhcnJTb3J0W2krMV0pO1xuICAgICAgICAgIH0gZWxzZSBpZihpID09PSAwKXtcbiAgICAgICAgICAgIGVycm9yKCcqJylcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfSBcbiAgICAgICAgfVxuICAgICAgICBpZiAoY3VycmVudCA9PT0gJy8nKSB7XG4gICAgICAgICAgaWYgKGkgPT09IDEpIHsvL2ZpcnN0IHNpZ24gKy0vKlxuICAgICAgICAgICAgcmVzdWx0ICs9IHByZXYgLyBuZXh0XG4gICAgICAgICAgfWVsc2UgaWYgKGkgPiAxKSB7XG4gICAgICAgICAgICByZXN1bHQgLz0gbmV4dCBcbiAgICAgICAgICB9IGVsc2UgaWYoaSA9PT0gMCl7XG4gICAgICAgICAgICBlcnJvcignLycpXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH0gXG4gICAgICAgIH1cbiAgICAgIH0gXG5cbiAgICB9XG4gICAgaWYgKCFzY3JlZW4uY2xhc3NMaXN0LmNvbnRhaW5zKCdlcnJvcicpKSB7XG4gICAgICBzY3JlZW4uaW5uZXJIVE1MID0gcmVzdWx0IFxuICAgIH0gXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICB9KTsgLy9lbmQgY2xpY2sgZXF1YWxcblxufSgpKTsvL0VORFxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9