From bfb86a6a0d7eb87ee96251bdc22de23090864f08 Mon Sep 17 00:00:00 2001 From: Tissevert Date: Thu, 26 Dec 2019 19:58:58 +0100 Subject: [PATCH] Transition to using UnitJS's fun module --- www/fun.js | 64 ---------------------------------------------- www/index.html | 1 - www/main.js | 2 +- www/screen/game.js | 2 +- 4 files changed, 2 insertions(+), 67 deletions(-) delete mode 100644 www/fun.js diff --git a/www/fun.js b/www/fun.js deleted file mode 100644 index 32ac397..0000000 --- a/www/fun.js +++ /dev/null @@ -1,64 +0,0 @@ -function Fun() { - return { - defaultCompare: defaultCompare, - insert: insert, - map: map, - mapFilter: mapFilter, - isSet: isSet, - of: of, - proj: proj - }; - - function insert(obj, t, compare, min, max) { - min = min == undefined ? 0 : min; - max = max == undefined ? t.length : max; - compare = compare == undefined ? defaultCompare : compare; - if(max - min < 1) { - return min; - } - var avg = Math.floor((max + min) / 2); - if (compare(obj, t[avg]) < 0) { - return insert(obj, t, compare, min, avg); - } else { - return insert(obj, t, compare, avg+1, max); - } - } - - function defaultCompare(a, b) { - if(a < b) { - return -1; - } else if(a > b) { - return 1; - } else { - return 0; - } - } - - function map(mapper, f) { - return function() { - var args = Array.prototype.map.call(arguments, mapper); - return f.apply(null, args); - } - } - - function of(o) { - return function(key) {return o[key];}; - } - - function proj(key) { - return function(o) {return o[key];}; - } - - function mapFilter(mapper, predicate) { - return function(array) { - return array.reduce(function(accumulator, elem) { - var v = mapper(elem); - return predicate(v) ? accumulator.concat(v) : accumulator; - }, []); - }; - } - - function isSet(x) { - return x != undefined; - } -} diff --git a/www/index.html b/www/index.html index f30f380..65d5e21 100644 --- a/www/index.html +++ b/www/index.html @@ -6,7 +6,6 @@ - diff --git a/www/main.js b/www/main.js index ca7e067..97bd9a4 100644 --- a/www/main.js +++ b/www/main.js @@ -1,9 +1,9 @@ window.addEventListener('load', function() { var dom = unitJS.Dom(); var async = unitJS.Async(); + var fun = unitJS.Fun(); var translations = Translations(); var i18n = I18n({translations: translations}); - var fun = Fun(); var save = Save(); var screen = Screen({dom: dom, i18n: i18n}); var messaging = Messaging({screen: screen}); diff --git a/www/screen/game.js b/www/screen/game.js index 7808fda..8b8b400 100644 --- a/www/screen/game.js +++ b/www/screen/game.js @@ -242,7 +242,7 @@ Screen.Game = function(modules) { function matchingInRiver(card) { return modules.fun.mapFilter( modules.fun.of(sets.river.card), - modules.fun.isSet + modules.fun.defined )(modules.hanafuda.sameMonth(card).map(modules.fun.proj('name'))); }