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

15 lines
3.5 KiB
JavaScript

var points=points||{};points.elapsedTime=30;points.gameWon=true;points.layout;points.undoUsed;points.hintsUsed;points.points;function Points(elapsedTime,gameWon,layout,undoUsed,hintsUsed,points){this.elapsedTime=elapsedTime;this.gameWon=gameWon;this.layout=layout;this.undoUsed=undoUsed;this.hintsUsed=hintsUsed;this.points=points;}
Points.prototype.saveGameStatistics=function(){console.log("saveGameStatistics");var gameStatistics=getGameStatistics();gameStatistics.updateStatistics(this.elapsedTime,this.gameWon,this.layout,this.undoUsed,this.hintsUsed,this.points);localStorage.setItem("gameStatistics",JSON.stringify(gameStatistics));};function getGameStatistics(){var gameStatistics=new GameStatistics(JSON.parse(localStorage.getItem("gameStatistics")));return gameStatistics;};var gameStatistics=gameStatistics||{};gameStatistics.numberOfGames=0;gameStatistics.numberOfGamesWon=0;gameStatistics.layoutsPlayed=[];gameStatistics.layoutsWon=[];gameStatistics.shortestLosingTime=0;gameStatistics.longestLosingTime=0;gameStatistics.averageLosingTime=0;gameStatistics.averagePlayTime=0;gameStatistics.shortestWinningTime=0;gameStatistics.longestWinningTime=0;gameStatistics.averageWinningTime=0;gameStatistics.numberOfGamesLostWithUndo=0;gameStatistics.numberOfGamesLostWithHints=0;gameStatistics.numberOfGamesWonWithoutUndo=0;gameStatistics.numberOfGamesWonWithoutHints=0;gameStatistics.numberOfGamesWonWithoutUndoOrHints=0;gameStatistics.highScore=0;function GameStatistics(jsonObject){if(!jsonObject){this.numberOfGames=0;this.numberOfGamesWon=0;this.layoutsPlayed=[];this.layoutsWon=[];this.shortestLosingTime=0;this.longestLosingTime=0;this.averageLosingTime=0;this.averagePlayTime=0;this.shortestWinningTime=0;this.longestWinningTime=0;this.averageWinningTime=0;this.numberOfGamesLostWithUndo=0;this.numberOfGamesLostWithHints=0;this.numberOfGamesWonWithoutUndo=0;this.numberOfGamesWonWithoutHints=0;this.numberOfGamesWonWithoutUndoOrHints=0;this.highScore=0;}else{for(var prop in jsonObject)
this[prop]=jsonObject[prop];}}
GameStatistics.prototype.updateStatistics=function(elapsedTime,gameWon,layout,undoUsed,hintsUsed,points){this.numberOfGames++;if(gameWon){this.numberOfGamesWon++;var sumOfElapsedSeconds=(this.numberOfGamesWon-1)*this.averageWinningTime;this.averageWinningTime=(sumOfElapsedSeconds+elapsedTime)/this.numberOfGamesWon;if(this.layoutsWon.indexOf(layout)<0){this.layoutsWon.unshift(layout);}
if(elapsedTime<this.shortestWinningTime){this.shortestWinningTime=elapsedTime;}
if(elapsedTime>this.longestWinningTime){this.longestWinningTime=elapsedTime;}
if(!undoUsed){this.numberOfGamesWonWithoutUndo++;}
if(!hintsUsed){this.numberOfGamesWonWithoutHints++;}
if(!undoUsed&&!hintsUsed){this.numberOfGamesWonWithoutUndoOrHints++;}}else{var sumOfElapsedSeconds=(this.numberOfGames-this.numberOfGamesWon-1)*this.averageLosingTime;this.averageLosingTime=(sumOfElapsedSeconds+elapsedTime)/(this.numberOfGames-this.numberOfGamesWon);if(elapsedTime<this.shortestLosingTime){this.shortestLosingTime=elapsedTime;}
if(elapsedTime>this.longestLosingTime){this.longestLosingTime=elapsedTime;}
if(undoUsed){this.numberOfGamesLostWithUndo++;}
if(!hintsUsed){this.numberOfGamesLostWithHints++;}}
if(points>this.highScore){this.highScore=points;}
if(this.averageWinningTime>0&&this.averageLosingTime>0){this.averagePlayTime=(this.averageWinningTime+this.averageLosingTime)/2;}else{this.averagePlayTime=this.averageWinningTime+this.averageLosingTime;}
if(this.layoutsPlayed.indexOf(layout)<0){this.layoutsPlayed.unshift(layout);}};