*/
module.exports = function (modulation, width, height, renderer) {
- let response = '';
+ let response = '';
- const maxSprinkleCount = (width * height) / 2;
- const minSprinkleCount = (width * height) / 8;
- const sprinkleCount = Math.round(Math.random() * (maxSprinkleCount - minSprinkleCount)) + minSprinkleCount;
+ const maxSprinkleCount = (width * height) / 2;
+ const minSprinkleCount = (width * height) / 8;
+ const sprinkleCount = Math.round(Math.random() * (maxSprinkleCount - minSprinkleCount)) + minSprinkleCount;
- const red = Math.floor(Math.random() * 255);
- const blue = Math.floor(Math.random() * 255);
- const green = Math.floor(Math.random() * 255);
+ const red = Math.floor(Math.random() * 255);
+ const blue = Math.floor(Math.random() * 255);
+ const green = Math.floor(Math.random() * 255);
- for (let i = 0; i < sprinkleCount; ++i) {
- const x = Math.round(Math.random() * (width - 1)) + 1;
- const y = Math.round(Math.random() * (height - 1)) + 1;
+ for (let i = 0; i < sprinkleCount; ++i) {
+ const x = Math.round(Math.random() * (width - 1)) + 1;
+ const y = Math.round(Math.random() * (height - 1)) + 1;
- const position = `\x1B[${y};${x}H`; // Move cursor to y,x (CSI y;x H)
+ const position = `\x1B[${y};${x}H`; // Move cursor to y,x (CSI y;x H)
- response += `${position}${renderer(red, blue, green)} `;
- }
+ response += `${position}${renderer(red, blue, green)} `;
+ }
- return response;
+ return response;
};