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
92 lines
1.6 KiB
JavaScript
92 lines
1.6 KiB
JavaScript
var pgli = pgli || {};
|
|
pgli.lang = pgli.lang || {};
|
|
|
|
pgli.lang.Iterator = gamecore.Base.extend('Iterator',
|
|
// Static
|
|
{
|
|
MAX_ITERATIONS: 1000,
|
|
|
|
COMPARATORS: {
|
|
"<": 0,
|
|
">": 1,
|
|
"<=": 2,
|
|
">=": 3
|
|
},
|
|
|
|
genComparatorMethod: function(type)
|
|
{
|
|
switch(type)
|
|
{
|
|
case 0:
|
|
return function(a, b){ return a < b };
|
|
case 1:
|
|
return function(a, b){ return a > b };
|
|
case 2:
|
|
return function(a, b){ return a <= b };
|
|
case 3:
|
|
return function(a, b){ return a >= b };
|
|
default:
|
|
return function(a, b){ return false };
|
|
}
|
|
},
|
|
|
|
genStepMethod: function(type, scope, attr)
|
|
{
|
|
switch(type)
|
|
{
|
|
case 1:
|
|
case 3:
|
|
return function(){ return --scope[attr] };
|
|
case 0:
|
|
case 2:
|
|
default:
|
|
return function(){ return ++scope[attr] };
|
|
}
|
|
}
|
|
},
|
|
// Instance
|
|
{
|
|
varname: "i",
|
|
start: 0,
|
|
end: 1,
|
|
comparator: 0,
|
|
compMethod: null,
|
|
stepMethod: null,
|
|
step: 0,
|
|
iter: 0,
|
|
|
|
init: function(name, start, comparator, end)
|
|
{
|
|
var static = pgli.lang.Iterator;
|
|
|
|
if(comparator in static.COMPARATORS)
|
|
this.comparator = static.COMPARATORS[comparator];
|
|
else
|
|
this.comparator = static.COMPARATORS["<"];
|
|
|
|
this.start = start;
|
|
this.end = end;
|
|
this.step = start;
|
|
|
|
this.varname = name;
|
|
this.compMethod = static.genComparatorMethod(this.comparator);
|
|
this.stepMethod = static.genStepMethod(this.comparator, this, "step");
|
|
},
|
|
|
|
loop: function()
|
|
{
|
|
return (this.iter < pgli.lang.Iterator.MAX_ITERATIONS && this.compMethod(this.step, this.end));
|
|
},
|
|
|
|
next: function()
|
|
{
|
|
++this.iter;
|
|
return this.stepMethod();
|
|
},
|
|
|
|
toString: function()
|
|
{
|
|
return "Iterator("+this.varname+") "+this.start+" - "+this.step+" - "+this.end;
|
|
}
|
|
|
|
}); |