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

107 lines
6.2 KiB
JavaScript

var IMG_PATH="images/index.html";var imgBackside=new Image();var imgArrStartStop=new Array(4);var imgArrPlusMinus=new Array(4);var imgArrNumber=new Array(11);var bRunning=false;var nLevel=4;var nSeconds=0;var nAttempts=0;var nHit=0;var nSelected1=-1;var nSelected2=-1;var bShowCard=false;var IMG_START,IMG_STOP,IMG_PLUS,IMG_MINUS;var IMG_LEVEL,IMG_SEC,IMG_ATTEMPTS,IMG_HIT;var IMG_OFFSET,IMG_MODE,imgArrField,nImages,nSumImages;function loadImages(nPairs,nImageMode)
{IMG_MODE=nImageMode;nImages=nPairs;imgArrField=new Array(nImages*2);nSumImages=nImages*2+4+4+11;IMG_START=2+nImages*2;IMG_STOP=4+nImages*2;IMG_PLUS=12+nImages*2;IMG_MINUS=8+nImages*2;IMG_LEVEL=10+nImages*2;IMG_SEC=17+nImages*2;IMG_ATTEMPTS=25+nImages*2;IMG_HIT=33+nImages*2;if(document.images)
{imgBackside.src=IMG_PATH+"card.jpg";for(var i=0;i<4;i++)
{imgArrStartStop[i]=new Image();imgArrStartStop[i].src=IMG_PATH+"startstop"+(i+1)+".gif";}
for(var i=0;i<4;i++)
{imgArrPlusMinus[i]=new Image();imgArrPlusMinus[i].src=IMG_PATH+"plusminus"+(i+1)+".gif";}
for(var i=0;i<11;i++)
{imgArrNumber[i]=new Image();imgArrNumber[i].src=IMG_PATH+i+".gif";}
for(var i=0;i<nImages;i++)
{if(IMG_MODE==1)
{imgArrField[i*2]=new Image();imgArrField[i*2].src=IMG_PATH+"pic"+(i+1)+"a.jpg";imgArrField[i*2+1]=new Image();imgArrField[i*2+1].src=IMG_PATH+"pic"+(i+1)+"b.jpg";}
else
{IMG_MODE=0;imgArrField[i*2]=new Image();imgArrField[i*2].src=IMG_PATH+"pic"+(i+1)+".jpg";imgArrField[i*2+1]=new Image();imgArrField[i*2+1].src=IMG_PATH+"pic"+(i+1)+".jpg";}}
nLevel=4;nSeconds=0;nAttempts=0;nHit=0;searchFirstImage();clearField();updateAll();setTimeout("checkLoading()",1000)}}
function shuffle()
{if(document.images)
{var j=Math.floor(new Date().getSeconds()*Math.random()+60);for(var i=0;i<j;i++)
{n1=Math.round(Math.random()*(nImages*2-1));n2=Math.round(Math.random()*(nImages*2-1));img=imgArrField[n1];imgArrField[n1]=imgArrField[n2];imgArrField[n2]=img;}}}
function startGame()
{if(document.images)
{if(!bRunning)
{shuffle();clearField();nSeconds=0;nSelected1=-1;nSelected2=-1;nAttempts=0;nHit=0;id=setInterval("countSeconds()",1000)
bRunning=true;bShowCard=false;updateAll();}}}
function stopGame()
{if(document.images)
{if(bRunning)
{clearInterval(id);bRunning=false;updateAll();}}
return;}
function countSeconds()
{nSeconds++;showNumber(nSeconds,IMG_SEC+IMG_OFFSET,5);}
function showNumber(nNumber,nPosition,nCount)
{if(document.images)
{nNumber+="";while(nNumber.length<nCount)nNumber=" "+nNumber;for(var i=0;i<nCount;i++)
{var n=nNumber.charAt(i);if(n==" ")
{document.images[nPosition+i].src=imgArrNumber[10].src;}
else
{document.images[nPosition+i].src=imgArrNumber[n].src;}}}}
function clearField()
{if(document.images)
{for(var i=0;i<nImages*2;i++)
{document.images[i+IMG_OFFSET].src=imgBackside.src;}}}
function showCard(nImage)
{if(document.images)
{if(bRunning&&!bShowCard)
{if(nSelected1==-1||nSelected2==-1)
{if(document.images[nImage+IMG_OFFSET].src==imgBackside.src)
{document.images[nImage+IMG_OFFSET].src=imgArrField[nImage].src;if(nSelected1==-1)
{nSelected1=nImage;}
else
{nSelected2=nImage;}}}
if(nSelected1!=-1&&nSelected2!=-1)
{showNumber(++nAttempts,IMG_ATTEMPTS+IMG_OFFSET,5);var pic1=document.images[nSelected1+IMG_OFFSET].src;var len1=pic1.length;var pic2=document.images[nSelected2+IMG_OFFSET].src;var len2=pic2.length;if(pic1.substr(0,len1-IMG_MODE-4)==pic2.substr(0,len2-IMG_MODE-4))
{showNumber(++nHit,IMG_HIT+IMG_OFFSET,5);nSelected1=-1;nSelected2=-1;if(nHit==nImages)
{stopGame();nPoints=Math.round(100000*(nLevel+1)/nSeconds/nAttempts);strMsg="Well done, you solved it!\nYour score is "+nPoints+" points";alert(strMsg);}}
else
{bShowCard=true;setTimeout("clearCard()",2000-nLevel*200);}}}
else
{if(!bRunning)
{alert("Please press the start button !");}}}}
function clearCard()
{document.images[nSelected1+IMG_OFFSET].src=imgBackside.src;document.images[nSelected2+IMG_OFFSET].src=imgBackside.src;nSelected1=-1;nSelected2=-1;bShowCard=false;}
function setLevel(nValue)
{if(document.images&&!bRunning)
{nLevel+=nValue;if(nLevel<0)nLevel=0;if(nLevel>9)nLevel=9;showNumber(nLevel,IMG_LEVEL+IMG_OFFSET,1);}}
function updateAll()
{if(document.images)
{showNumber(nLevel,IMG_LEVEL+IMG_OFFSET,1);showNumber(nSeconds,IMG_SEC+IMG_OFFSET,5);showNumber(nAttempts,IMG_ATTEMPTS+IMG_OFFSET,5);showNumber(nHit,IMG_HIT+IMG_OFFSET,5);if(bRunning)
{document.images[IMG_START+IMG_OFFSET].src=imgArrStartStop[1].src;document.images[IMG_STOP+IMG_OFFSET].src=imgArrStartStop[2].src;document.images[IMG_PLUS+IMG_OFFSET].src=imgArrPlusMinus[1].src;document.images[IMG_MINUS+IMG_OFFSET].src=imgArrPlusMinus[3].src;}
else
{document.images[IMG_START+IMG_OFFSET].src=imgArrStartStop[0].src;document.images[IMG_STOP+IMG_OFFSET].src=imgArrStartStop[3].src;document.images[IMG_PLUS+IMG_OFFSET].src=imgArrPlusMinus[0].src;document.images[IMG_MINUS+IMG_OFFSET].src=imgArrPlusMinus[2].src;}}}
function strTrim(str)
{var strReturn="";for(var i=0;i<str.length;i++)
{if(str.charAt(i)!=" ")
{strReturn+=str.charAt(i);}}
return strReturn;}
function getY2kDate()
{var strReturn="";var d=new Date();var strDate=addLeadingZero(d.getDate(),2)+"."+addLeadingZero(d.getMonth()+1,2)+"."+getY2kYear(d);var strTime=addLeadingZero(d.getHours(),2)+":"+addLeadingZero(d.getMinutes(),2);strReturn=strDate+" "+strTime;return strReturn;}
function getY2kYear(d)
{var y=d.getYear();if(y<1970)
{return y+1900;}
else
{return y;}}
function addLeadingZero(value,nTotalLength)
{value+="";while(value.length<nTotalLength)value="0"+value;return value;}
function searchFirstImage()
{for(var i=0;i<document.images.length;i++)
{if(document.images[i].name=="memory_id")
{IMG_OFFSET=i+1;break;}}}
function countLoadedImages()
{var nCompleted=0;for(var i=0;i<2*nImages;i++)
{if(imgArrField[i].complete)
{nCompleted++;}}
for(var i=0;i<4;i++)
{if(imgArrStartStop[i].complete)
{nCompleted++;}}
for(var i=0;i<4;i++)
{if(imgArrPlusMinus[i].complete)
{nCompleted++;}}
for(var i=0;i<11;i++)
{if(imgArrNumber[i].complete)
{nCompleted++;}}
return nCompleted;}
function checkLoading()
{var nLoaded=countLoadedImages();if(nLoaded<nSumImages)
{document.images[IMG_OFFSET-1].width=456-(456/nSumImages*nLoaded);window.status=""+nLoaded+" of "+nSumImages+" pictures loaded";setTimeout("checkLoading()",250);}
else
{document.images[IMG_OFFSET-1].src=IMG_PATH+"blank.gif";document.images[IMG_OFFSET-1].width=5;window.status="";updateAll();}}