Node逻辑项目-打印图形

本文将介绍如何使用Node.js编程语言来创建一个简单的程序,该程序能够打印出各种图形,如星号(*)的形状、正方形等,展示Node.js在控制台交互方面的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

"use strict";

//1.图案 2.填充内容 3.图案的长宽 4.是否为空心
// 正方形、三角形、菱形、回字、梯形


//正方形
function square(symbol, n, full) {
    var str = "";
    if (n > 1) {
        if (full === 1) {
            for (var i = 0; i < n; i++) {
                for (var j = 0; j < n; j++) {
                    str += symbol + "  ";
                }
                str += "\n";
            }
            console.log(str);
        }
        if (full === 0) {
            for (var x = 0; x < n; x++) {
                var y = 0;
                if (x === 0 || x === n - 1) {
                    for (y; y < n; y++) {
                        str += symbol + "  ";
                    }
                }
                if (1 < x < n - 1) {
                    for (y; y < n; y++) {
                        if (y === 0 || y === n - 1) {
                            str += symbol + "  ";
                        } else {
                            str += "   ";
                        }
                    }
                }
                str += "\n";
            }
            console.log(str);
        }
    } else {
        console.log("请输入大于1的边长!");
    }
}

//三角形
function triangle(symbol, h, full) {
    var str = "";
    var msg = "";
    if (!h < 1) {
        if (1 === full) {
            var i = 1;
            for (i; i <= h; i++) {   //设置高h
                for (var j = 1; j <= h - i; j++) {
                    str += " ";
                }
                for (var k = 1; k <= i; k++) {
                    str += symbol;
                }
                for (var l = 1; l < i; l++) {
                    str += symbol;
                }
                str += "\n";
            }
        }
        if (0 === full) {
            for (var i = 1; i <= h; i++) {
                for (var j = 1; j <= h - i; j++) { //第一区域
                    str += " ";
                }
                for (var k = 1; k <= 2 * i - 1; k++) { //第i行有几个*
                    if (i === 1 || i === h) {
                        str += symbol;
                    } else if (k === 1 || k === 2 * i - 1) { //第二行到n-1行的*
                        str += symbol;
                    } else { //第二行到n-1行的空格
                        str += " ";
                    }
                }
                str += "\n";
            }
        }
        console.log(str);
    } else {
        msg += "高度至少大于1!";
        console.log(msg);
    }
}

//菱形
function diamond(symbol, n, full) {
    var str = "";
    var msg = "";
    if (n > 1) {
        if (full === 1) {
            for (var i = 1; i <= n; i++) {
                for (var j = 1; j <= n - i; j++) {
                    str += " ";
                }
                for (var k = 1; k <= i * 2 - 1; k++) {
                    str += symbol;
                }
                str += "\n";
            }
            for (var x = n; x > 1; x--) {
                for (var y = 1; y <= n - x + 1; y++) {
                    str += " ";
                }
                for (var z = 2; z < x * 2 - 1; z++) {
                    str += symbol;
                }
                str += "\n";
            }

        }
        if (full === 0) {
            for (var i = 1; i <= n; i++) {
                for (var j = 1; j <= n - i; j++) {
                    str += " ";
                }
                for (var k = 1; k <= i * 2 - 1; k++) {
                    if (i === 1 || k === 1 || k === i * 2 - 1) {
                        str += symbol;
                    } else {
                        str += " ";
                    }
                }
                str += "\n";
            }
            for (var i = 1; i < n; i++) {
                for (var j = n; j > n - i; j--) {
                    str += " ";
                }
                for (var k = 1; k <= j * 2 - 1; k++) {
                    if (k === 1 || k === j * 2 - 1) {
                        str += symbol;
                    } else {
                        str += " ";
                    }
                }
                str += "\n";
            }
        }
        console.log(str);
    } else {
        console.log("边长至少大于1!");
    }
}

//梯形
function trapezoid(symbol, n, h, full) {
    var str = "";
    if (n > 1 && h > 1) {
        if (full === 1) {
            for (var j = 1; j < h; j++) {
                for (var k = 1; k <= j; k++) {
                    str += symbol + "  ";
                }
                str += "\n";
            }
            for (var i = 1; i <= n; i++) {
                for (var j = 1; j <= h; j++) {
                    str += symbol + "  ";
                }
                str += "\n";
            }
        }
        if (full === 0) {
            for (var j = 1; j < h; j++) {
                for (var k = 1; k <= j; k++) {
                    if (j === 1 || j === 2 || k === 1 || k === j) {
                        str += symbol + "  ";
                    } else {
                        str += "   ";
                    }
                }
                str += "\n";
            }
            for (var i = 1; i <= n; i++) {
                for (var j = 1; j <= h; j++) {
                    if (i === n || j === 1 || j === h) {
                        str += symbol + "  ";
                    } else {
                        str += "   ";
                    }
                }
                str += "\n";
            }
        }
        console.log(str)
    } else {
        console.log("高和边长至少大于1!");
    }
}

//回字形
function hui(symbol, n) {
    var msg = "";
    var str = "";
    if (n >= 4 && n < 7) {
        for (var i = 1; i <= n; i++) {
            for (var j = 1; j <= n; j++) {
                if (i === 1 || i === n || j === 1 || j === n) {
                    str += symbol + " ";
                } else {
                    if (i === 2 && j !== 1 && j !== n) {
                        str += symbol + " ";
                    } else if (i === n - 1 && j !== 1 && j !== n) {
                        str += symbol + " ";
                    } else if (j === 2) {
                        str += symbol + " ";
                    } else if (j === n - 1) {
                        str += symbol + " ";
                    } else {
                        str += "  ";
                    }
                }
            }
            str += "\n";
        }
        console.log(str);
    } else if (n >= 7) {
        for (var i = 1; i <= n; i++) {
            for (var j = 1; j <= n; j++) {
                if (i === 1 || i === n || j === 1 || j === n) {
                    str += symbol + " ";
                } else {
                    if (i === 3 && j !== 2 && j !== n - 1) {
                        str += symbol + " ";
                    } else if (i === n - 2 && j !== 2 && j !== n - 1) {
                        str += symbol + " ";
                    } else if (j === 3 && i !== 2 && i !== n - 1) {
                        str += symbol + " ";
                    } else if (j === n - 2 && i !== 2 && i !== n - 1) {
                        str += symbol + " ";
                    } else {
                        str += "  ";
                    }
                }
            }
            str += "\n";
        }
        console.log(str);
    } else {
        msg = "请设置为至少为4!";
        console.log(msg);
    }

}

// square("+", 3, 0);
// triangle("+", 10, 1);
// diamond("+", 10, 1);
// trapezoid("*", 7, 5, 0);
// hui("+", 15);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值