博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
控制台下的字符图像界面
阅读量:6430 次
发布时间:2019-06-23

本文共 2195 字,大约阅读时间需要 7 分钟。

// 输出流var stream = process.stdout; // 输出var write = function (str) {  stream.write(str);}; // 生成ANSI escape sequences代码:http://en.wikipedia.org/wiki/ANSI_escape_codevar CSI = exports.CSI = function (str, c) {  return '\x1b[' + str + c;}; // 生成带颜色的文本var color = exports.color = function (text, c, bgc) {  if (isNaN(bgc)) bgc = 0;  c = Number(c) + 30;  bgc = Number(bgc) + 40;  var ret = CSI(c + ';' + bgc, 'm') + text + CSI('37;40', 'm');  return ret;}; // 设置光标位置,位置从1开始var setCursor = exports.setCursor = function (row, column) {  write(CSI(row + ';' + column, 'H'));}; // 清屏var clear = function (bgcolor) {  setCursor(1, 1);  for (var i = 0; i < stream.rows; i++) {    var line = '';    for (var j = 0; j < stream.columns; j++) {      line += ' ';    }    write(color(line, 0, 6));  }}; // 画矩形var DOUBLE_LINE = '══════════════════════════════════════════════════════════' +                  '══════════════════════════════════════════';var SPACE_LINE = '                                                           ' +                 '                                         ';var drawRect = function (top, left, width, height, bgcolor) {  setCursor(top, left);  var w = width / 2 - 2;  var c = function (str) {    return color(str, 0, 7);  };  write(c('╔') + c(DOUBLE_LINE.substr(0, w)) + c('╗'));  for (var i = 1; i < height - 1; i++) {    setCursor(top + i, left)    write(c('‖') + color(SPACE_LINE.substr(0, w), 0, bgcolor) +          color(SPACE_LINE.substr(0, w), 0, bgcolor) + c('‖'));  }  setCursor(top + height - 1, left);  write(c('╚') + c(DOUBLE_LINE.substr(0, w)) + c('╝'));  setCursor(top + 1, left + 2);};  // -----------------------------------------------------------------------------// --------------- 开始 -------------------------------------------------------- // 开始clear();// 要绘制的窗口宽度和高度var w = 68;var h = 5;var t = (stream.rows - h) / 2;var l = (stream.columns - w) / 2;drawRect(t, l, w, h, 7);var randomColor = function () {  var r = Math.round(Math.random() * 5);  return r + 1;};var updateTime = function () {  setCursor(t + 2, (stream.columns - 48) / 2);  write(color(new Date().toLocaleString() + '   ', randomColor(), 7));};updateTime();setInterval(updateTime, 1000);

转载地址:http://botga.baihongyu.com/

你可能感兴趣的文章
计算机程序的思维逻辑 (19) - 接口的本质
查看>>
自定义控件(二) 从源码分析事件分发机制
查看>>
CVE-2014-4113漏洞利用过程分析
查看>>
解密MSSQL链接数据库的密码
查看>>
Glide-源码详解
查看>>
你敢在post和get上刁难我,就别怪我装逼了
查看>>
直播 3.0 时代,在线教育行业的裂变和重构
查看>>
SpringBoot使用Nacos服务发现
查看>>
2017双11技术揭秘—阿里巴巴数据库技术架构演进
查看>>
我的友情链接
查看>>
Spring框架 - AOP使用
查看>>
Ansible常用内置属性
查看>>
C#使用正则表达式校验邮箱
查看>>
Linux自动清理N天前目录文件
查看>>
方便 快捷 安全的EVO邮件服务器
查看>>
bash的快捷键
查看>>
关于如何编写linux设备驱动
查看>>
DNS服务
查看>>
九州云开放“边缘云”能力 助力中国联通延展业务边界
查看>>
Linux进程状态(ps stat)之R、S、D、T、Z、X
查看>>