From 5f7fe007b38b881aa1d8528e0ee6a470d2e6379e Mon Sep 17 00:00:00 2001 From: O-01-67 <68935009+O-01-67@users.noreply.github.com> Date: Thu, 1 Sep 2022 13:05:53 -0400 Subject: [PATCH] New command: countall * Takes no arguments * Logs to console a list of elements present and their amounts (pixels) Example output: > emerald: 675 > diamond: 2031 > gold_coin: 2026 > amethyst: 461 > sapphire: 426 > ruby: 457 > pearl: 268 > onyx: 348 > cumin: 418 --- mods/prompt.js | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/mods/prompt.js b/mods/prompt.js index 6ce38b73..c6a096f2 100644 --- a/mods/prompt.js +++ b/mods/prompt.js @@ -281,8 +281,36 @@ function funniPrompt() { }; alert(`There are ${count} pixels of ${inputElement}`); break; + case "countall": + var listObject = {}; + + //Listing code; + for (var i = 1; i < width; i++) { + for (var j = 1; j < height; j++) { + if (!isEmpty(i,j)) { + var pixel = pixelMap[i][j]; + var element = pixel.element; + if(!listObject[pixel.element]) { + listObject[pixel.element] = 1; + } else { + listObject[pixel.element]++; + } + }; + }; + }; + + var formattedList = ""; + var elements = Object.keys(listObject); + for(k = 0; k < elements.length; k++) { + var elementName = elements[k]; + var elementCount = listObject[elementName]; + formattedList += `${elementName}: ${elementCount}\n`; + }; + + alert("Elements counts logged to console"); + console.log(formattedList); + break; default: alert(`Command ${firstItem} not found!`); }; }; -