在背景上打印钻石

时间:2017-11-15 14:19:34

标签: c# background console

我正在寻找一些指导,我想在控制台窗口上打印一个钻石,但我希望它有一些列和行,我希望能够通过改变一些参数来移动钻石,并改变钻石的大小,显示应该是这样的:

0=======1=======2=======3=======4=======5=======6=======7=======
========1=======2=======3=======4=======5=======6=======7=======
========1=======2=======3=======4=======5=======6=======7=======
========1=$=====2=======3=======4=======5=======6=======7=======
========1$=$====2=======3=======4=======5=======6=======7=======
========$===$===2=======3=======4=======5=======6=======7=======
1======$=====$==2=======3=======4=======5=======6=======7=======
======$=======$=2=======3=======4=======5=======6=======7=======
=====$=========$2=======3=======4=======5=======6=======7=======
====$===========$=======3=======4=======5=======6=======7=======
===$=============$======3=======4=======5=======6=======7=======
==$===============$=====3=======4=======5=======6=======7=======
=$=================$====3=======4=======5=======6=======7=======
2=$===============$=====3=======4=======5=======6=======7=======
===$=============$======3=======4=======5=======6=======7=======
====$===========$=======3=======4=======5=======6=======7=======
=====$=========$2=======3=======4=======5=======6=======7=======
======$=======$=2=======3=======4=======5=======6=======7=======
=======$=====$==2=======3=======4=======5=======6=======7=======
========$===$===2=======3=======4=======5=======6=======7=======
3=======1$=$====2=======3=======4=======5=======6=======7=======
========1=$=====2=======3=======4=======5=======6=======7=======
========1=======2=======3=======4=======5=======6=======7=======
========1=======2=======3=======4=======5=======6=======7=======
========1=======2=======3=======4=======5=======6=======7=======

但是,我得到的显示看起来像这样:

=======1=======2=======3=======4=======5=======6=======7
=======1=======2=======3=======4=======5=======6=======7
=======1=======2=======3=======4=======5=======6=======7
=======1=======2=======3=======4=======5=======6=======7
=======1=======2=======3=======4=======5=======6=======7
=======1=======    $===3=======4=======5=======6=======7
=======1=======   $$$==3=======4=======5=======6=======7
1=======1======    $$$==3=======4=======5=======6======7
=======1=======   $$$$$3=======4=======5=======6=======7
=======1=======  $$$$$$$=======4=======5=======6=======7
=======1======= $$$$$$$3=======4=======5=======6=======7
=======1=======2=======3=======4=======5=======6=======7
=======1=======2=======3=======4=======5=======6=======7
=======1=======2=======3=======4=======5=======6=======7
2=======1=======2=======3=======4=======5=======6======7
=======1=======2=======3=======4=======5=======6=======7
=======1=======2=======3=======4=======5=======6=======7
=======1=======2=======3=======4=======5=======6=======7
=======1=======2=======3=======4=======5=======6=======7
=======1=======2=======3=======4=======5=======6=======7
=======1=======2=======3=======4=======5=======6=======7
3

我试过这段代码,但我不知道从哪里开始

namespace Diamonds
{
    class Program
    {
        static void Main(string[] args)
        {
            print_diamond print = new print_diamond();
            print_background background = new print_background();
            background.main();
            print.main(5, 15, 5);
            Console.ReadKey();
        }
    }
    class print_diamond{
        public void main(int rows, int x, int y)
        {
            //x = console left, y = console top, rows = the amount of rows to print
            int i, k, count = 1;
            count = rows - 1;

            for (k = 1; k <= rows; k++)
            {
                Console.SetCursorPosition(x, y);
                for (i = 1; i <= count; i++)
                {
                    Console.Write(" ");
                }                   
                count--;
                for (i = 1; i <= 2 * k - 1; i++)
                {
                    Console.Write("$");
                }
                Console.WriteLine();
                y++;
            }
            count = 1;
            for (k = 1; k <= rows - 1; k++)
            {
                Console.SetCursorPosition(x, y);
                for (i = 1; i <= count; i++)
                {
                    Console.Write(" ");
                }
                count++;
                for (i = 1; i <= 2 * (rows - k) - 1; i++)
                {
                    Console.Write("$");
                }
                Console.WriteLine();
                y--;
            }
        }
    }
    class print_background
    {
        public void main()
        {
            int i;
            int row = 0, col = 1, rowcount = 1;
            int x = Console.WindowWidth, y = 0;
            for (i = 1; i <= x; i++)
            {
                Console.Write("=");
                if (i == 7)
                {
                    i = 0;
                    Console.Write(col);
                    col++;
                    y++;
                }
                if (y == 7)
                {
                    Console.WriteLine();
                    row++;
                    y = 0;
                    col = 1;
                }
                if (i == x)
                {
                    Console.WriteLine();
                }
                if (row == 7)
                {
                    Console.Write(rowcount);
                    rowcount++;
                    row = 0;
                }
                if (rowcount == 4)
                {
                    break;
                }
            }
        }
    }
}

我能够独自获得钻石

它看起来像这样:

    $
   $$$
  $$$$$
 $$$$$$$
$$$$$$$$$
 $$$$$$$
  $$$$$
   $$$
    $

两者结合时会出现混乱,我该怎么办? 钻石是否填充并不重要,只要钻石在那里就可以了。

0 个答案:

没有答案