snake-cli-ts
Version:
Nodejs cli snake game
52 lines (51 loc) • 1.91 kB
JavaScript
;
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;