UNPKG

console-fun

Version:

Some stuff in the console: utils, printing, games and other fun

59 lines (52 loc) 1.44 kB
import figureSet from "figures"; import chalk from "chalk"; import readline from "readline"; import ansiEscapes from "ansi-escapes"; import { randPos } from "../utils"; let score = 0; const drawHamburgers = () => { process.stdout.write(ansiEscapes.clearScreen); const taken = []; const interval = setInterval(() => { let tries = 0; let x; let y; while (tries < 7) { [x, y] = randPos(); if (taken.some((a) => a[0] === x && a[1] === y)) { tries++; } else { taken.push([x, y]); tries = 0; break; } } if (tries > 5) { clearInterval(interval); process.stdout.write(ansiEscapes.cursorTo(0, process.stdout.rows - 1)); process.stdout.write(ansiEscapes.eraseEndLine); process.stdout.write( ansiEscapes.cursorTo( process.stdout.columns / 2, process.stdout.rows - 1, ), ); process.stdout.write( chalk.cyan(`${chalk.bold("r")} - run again ${chalk.bold("q")} - exit`), ); } process.stdout.write(ansiEscapes.cursorTo(x, y)); process.stdout.write(figureSet.hamburger); }); readline.emitKeypressEvents(process.stdin); process.stdin.setRawMode(true); process.stdin.on("keypress", async (_chunk, key) => { if (key.name == "r") { drawHamburgers(); } if (key && key.name == "q") { process.exit(); } }); }; export { drawHamburgers };