UNPKG

snake-cli-ts

Version:
52 lines (51 loc) 1.91 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var chalk_1 = __importDefault(require("chalk")); var Console_1 = __importDefault(require("../helpers/Console")); var Printer = (function () { function Printer(game) { this.game = game; } Printer.prototype.print = function () { Console_1.default.clear(); var wallChar = this.game.isGameOver() ? chalk_1.default.red('#') : '#'; var rows = []; rows.push((wallChar + ' ').repeat(this.game.width + 2)); var _loop_1 = function (y) { var row = wallChar + ' '; var _loop_2 = function (x) { var food = this_1.game.foodManager.find(x, y); if (food) { row += food.symbol + " "; } else if (this_1.game.snake.body.some(function (p) { return p.x === x && p.y === y; })) { if (this_1.game.isGameOver()) { row += chalk_1.default.red('x '); } else { row += chalk_1.default.blue('x '); } } else { row += ' '; } }; for (var x = 0; x < this_1.game.width; x++) { _loop_2(x); } row += wallChar + ' '; rows.push(row); }; var this_1 = this; for (var y = this.game.height - 1; y >= 0; y--) { _loop_1(y); } rows.push((wallChar + ' ').repeat(this.game.width + 2)); Console_1.default.log(rows.join('\n')); }; return Printer; }()); exports.default = Printer;