趣味shell之菱形的n种玩法

众所周知,语言这门行业总是有许多的娱乐性,我今天来做一个菱形的多种命令,来进行娱乐娱乐。

一,使用多个三角形进行拼接

  • 我们可以利用三角形进行拼接菱形,
#!/bin/bash         #基本格式,不可不写

for ((a=1;a<=9;a++))    #做一个九行的图型
do
   for ((b=9;b>=a;b--))        #建立空白的三角形
   do
     echo -n  " "    #输出空白 -n表示不换行
   done
   for ((c=1;c<=a;c++))       #建立一个直角三角形
    do
     echo -n "#"
    done
   for ((d=2;d<=a;d++))      #建立与之前相反的直角三角形
    do
     echo -n "#"
    done
       echo ""     #代表换行输出
done

for ((i=1;i<=8;i++))
    do
     for ((e=0;e<=i;e++))
       do
         echo -n " "
       done
     for ((f=8;f>=i;f--))
       do
         echo -n "#"
       done
     for ((g=7;g>=i;g--))
       do
         echo -n "#"
       done
      echo ""
     done

在这里插入图片描述

在这里插入图片描述

下面给大家看一下成品

在这里插入图片描述

二,使用算法来进行建立两个等腰三角形,拼接成菱形

#!/bin/bash

for ((a=1;a<=9;a++))
     do
      for ((b=9;b>=a;b--))
        do
           echo -n " "
        done
      for ((c=1;c<=$[($a*2)-1];c++))
        do
           echo -n "*"
        done
      echo ""
     done
     
for ((i=1;i<=9;i++))
     do
      for ((d=0;d<=i;d++))
        do
           echo -n " "
        done
      for ((e=15;e>=$[($i*2)-1];e--))
        do
           echo -n "*"
        done
       echo ""
     done

在这里插入图片描述

在这里插入图片描述

三,还可以使用上面使用图形拼接,下面使用算法的方式来做

#!/bin/bash
for ((a=1;a<=9;a++))
   do
for ((b=9;b>=a;b--))
       do
         echo -n " "
       done
     for ((c=1;c<=a;c++))
       do
         echo -n "*"
       done
     for ((d=2;d<=a;d++))
       do
         echo -n "*"
       done
     echo ""
   done

for ((e=1;e<=8;e++))
     do
     for((f=0;f<=e;f++))
        do
          echo -n " "
        done
     for ((g=15;g>=$[(2*$e)-1];g--))
        do
          echo -n "*"
        done
     echo  ""
     done

在这里插入图片描述
在这里插入图片描述

  • 为了更直观一点,我将下方的*号改成了#,能够更加直观的看出来

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_51614581/article/details/111478193