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

58 lines
3.9 KiB
JavaScript

let my={}
function rememberMain(){let version='0.62';my.opts={gameN:0,lvl:2}
my.imgHome=(document.domain=='localhost')?'/mathsisfun/images/style/':'/images/style/'
let s="";s+='<div style="position: relative; text-align: center; ">';s+='<div style="display: inline-block; position: relative; width: 360px; text-align: center; vertical-align: top; ">';let style='font: 25px Arial; height:25px; margin: 3px auto 3px auto; padding:5px;'
s+='<div id="info" style="margin: 3px auto 3px auto;">Enter this number:</div>';s+='<div id="chall" class="input" style="'+style+'"></div>';s+='<div id="resp" class="input" style="'+style+'"></div>';s+='<div style="text-align: center; height:42px;">'
s+='<img id="yesImg" src="'+my.imgHome+'yes.svg" style="" />';s+='<img id="noImg" src="'+my.imgHome+'no.svg" style="" />';s+='</div>'
s+='</div>';s+='<div style="font: 11px Arial; color: #6600cc;">&copy; 2020 MathsIsFun.com v'+version+'</div>';s+='</div>';document.write(s);window.addEventListener("keydown",checkKeyPressed,false);my.memTime=1000
my.goQ=false
my.waitForUserQ=true
gameNew()}
function gameNew(){my.chall='123'
my.chall=randDigits(my.opts.lvl)
my.resp=''
if(my.opts.lvl>3)document.getElementById('info').innerHTML='Level '+my.opts.lvl
my.memTime=200+500*my.opts.lvl
document.getElementById('chall').innerHTML=my.chall
document.getElementById('resp').innerHTML=my.resp
document.getElementById('chall').style.visibility='visible'
document.getElementById('resp').style.visibility='hidden'
document.getElementById('yesImg').style.display='none'
document.getElementById('noImg').style.display='none'
if(my.waitForUserQ){my.goQ=false}else{statusWait()
my.goQ=false
setTimeout(gameGo,my.memTime)}}
function gameGo(){document.getElementById('chall').style.visibility='hidden'
document.getElementById('resp').style.visibility='visible'
my.goQ=true
statusGo()}
function randDigits(n){let s=''
for(let i=0;i<n;i++){s+=randomInt((i==0?1:0),9)}
return s}
function randomInt(min,max){return Math.floor(Math.random()*(max-min+1))+min;}
function check(){if(my.resp.length>=my.chall.length){if(matchQ(my.chall,my.resp)){console.log('SUCCESS')
my.opts.lvl++
statusYes()
setTimeout(gameNew,1000)}else{console.log('FAIL')
statusNo()
setTimeout(gameNew,700+my.opts.lvl*200)}}}
function statusYes(){document.getElementById('chall').style.visibility='visible'
document.getElementById('yesImg').style.display='inline-block'}
function statusNo(){document.getElementById('chall').style.visibility='visible'
document.getElementById('resp').style.borderColor='red'
document.getElementById('noImg').style.display='inline-block'}
function statusGo(){document.getElementById('chall').style.visibility='hidden'
document.getElementById('resp').style.visibility='visible'
document.getElementById('resp').style.borderColor='gold'}
function statusWait(){document.getElementById('resp').style.borderColor='white'}
function matchQ(chall,resp){if(resp==chall)return true
return false}
function fmt(num,digits){digits=14;if(num==Number.POSITIVE_INFINITY)return "undefined";if(num==Number.NEGATIVE_INFINITY)return "undefined";num=num.toPrecision(digits);num=num.replace(/0+$/,"");if(num.charAt(num.length-1)==".")num=num.substr(0,num.length-1);if(Math.abs(num)<1e-15)num=0;return num;}
function checkKeyPressed(ev){var keyCode=ev.keyCode;if(keyCode>=96&&keyCode<=105){doKey((keyCode-96).toString());ev.preventDefault();}
if(keyCode>=48&&keyCode<=57){doKey((keyCode-48).toString());ev.preventDefault();}
if(keyCode==8||keyCode==46){if(my.resp.length>0){my.resp=my.resp.substr(0,my.resp.length-1);document.getElementById('resp').innerHTML=my.resp;}
ev.preventDefault();}
if(keyCode==9||keyCode==13||keyCode==32||keyCode==110){ev.preventDefault();}
if(my.isGameOver){my.resp='';}}
function doKey(c){if(my.waitForUserQ){statusGo()}else{if(!my.goQ)return}
if(c.charCodeAt(0)==8592){my.resp=my.resp.substring(0,my.resp.length-1);document.getElementById('resp').innerHTML=my.resp;}else{my.resp+=c;document.getElementById('resp').innerHTML=my.resp;check();}}