nodeJs打印图形


nodeJs打印图形

首先声明一个变量,用来存放字符串

var printStr = '';

接下来声明一个函数用来定义要打印一行字符串;

function printChar (char, col) {
    for (var i=0; i<col; i++) {
        printStr += char;
    }
}

console.log(printStr);

当你运行node app.js就会看到

root@snail:~/desktop/test# node app.js
********************

现在,我们对代码做一些修改,使之能打印出一个图形

var printStr = '';

function printChar (char, col) {
    char = char?char:'*';
    for (var i=0; i<col; i++) {
        printStr += char;
    }
}


function n () {
    printStr += '\n';
}


function graph (row, col, char) {
    for (var i=0; i<row; i++) {
        printChar(char, col)
        n();
    }
}

graph(4, 10);
console.log(printStr);

解释一下,printChar()是为了打印一列col指定的个数的字符串,n()是用来打印换行符的.graph()函数首先进行3元运算得到char的值,它是要打印的字符.for循环是为了打印出row指定的行数.

最后console出字符串.

得到的结果如下:

root@snail:~/desktop/test# node app.js
**********
**********
**********
**********

接下来我们继续修改代码,打印一个三角形.
这个要找找规律.我现在贴上最终修改完成的代码:

var printStr = '';

function printChar (col, char) {
    char = char?char:'*';
    for (var i=0; i<col; i++) {
        printStr += char;
    }
}


function n () {
    printStr += '\n';
}


function graph (row, col, char) {
    for(var i=0; i<row; i++){
        printChar(55, ' ');
        printChar(col, char)
        n();
    }
}


function triangle (i) {
    var j=1;
    for (;i>0;i--) {
        printChar(55, ' ');
        printChar(i, ' ');
        printChar(j);
        j+=2
        n();
    }
}


function ktriangle (i) {
    var j=i*2-1;
    for (var i=1;j>0;i++) {
        printChar(55, ' ');
        printChar(i, ' ');
        printChar(j);
        j-=2
        n();
    }
}


graph(4, 11);
triangle(5);
ktriangle(5);
graph(4, 11);
console.log(printStr);

运行效果如下

root@snail:~/desktop/test# node app.js
                                                       ***********
                                                       ***********
                                                       ***********
                                                       ***********
                                                            *
                                                           ***
                                                          *****
                                                         *******
                                                        *********
                                                        *********
                                                         *******
                                                          *****
                                                           ***
                                                            *
                                                       ***********
                                                       ***********
                                                       ***********
                                                       ***********

root@snail:~/desktop/test#

至于打印空心的图形。我想,根据前面的代码。已经不难了

不过还是留个空心矩形的小demo吧

var printStr = '';

function printChar (col, char) {
    char = char?char:'*';
    for(var i=0; i<col; i++){
        printStr += char;
    }
}


function n () {
    printStr += '\n';
}


function hollowRect () {
    printChar(20);
    n();
    for (var i=0; i<5; i++) {
        printChar(1);
        printChar(18, ' ');
        printChar(1);
        n();
    }
    printChar(20);
}


hollowRect();
console.log(printStr);

运行后你就会看到如下空心矩形:

root@snail:~/desktop/test# node app.js
********************
*                  *
*                  *
*                  *
*                  *
*                  *
********************

附上含有空心矩形的代码

var printStr = '';

function printChar (col, char) {
    char = char?char:'*';
    for (var i=0; i<col; i++) {
        printStr += char;
    }
}


function n () {
    printStr += '\n';
}


function graph (row, col, char) {
    for (var i=0; i<row; i++) {
        printChar(55, ' ');
        printChar(col, char)
        n();
    }
}


function triangle (i) {
    var j=1;

    for (;i>0;i--) {
        printChar(55, ' ');
        printChar(i, ' ');
        printChar(j);
        j+=2
        n();
    }
}


function ktriangle (i) {
    var j=i*2-1;
    for (var i=1;j>0;i++) {
        printChar(55, ' ');
        printChar(i, ' ');
        printChar(j);
        j-=2
        n();
    }
}


function hollowRect () {
    printChar(20);
    n();
    for (var i=0; i<5; i++) {
        printChar(1);
        printChar(18, ' ');
        printChar(1);
        n();
    }
    printChar(20);
}


graph(4, 11);
triangle(5);
ktriangle(5);
graph(4, 11);
hollowRect();
console.log(printStr);

文章作者: 牟勇
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 牟勇 !
  目录