4. 設計一程式以顯示不同方向及型態的等腰三角形

namespace Q4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void button3_Click(object sender, EventArgs e)
        {
            Close();
        }

        bool hollow = false;
        private void button4_Click(object sender, EventArgs e)
        {
            up.Text = "";
            down.Text = "";
            hollow = false;
        }

        private void button5_Click(object sender, EventArgs e)
        {
            hollow = true;
        }

        bool goUp = true;
        private void button1_Click(object sender, EventArgs e)
        {
            goUp = true;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            goUp = false;
        }

        private void button6_Click(object sender, EventArgs e)
        {
            var n = int.Parse(textBox1.Text);
            string s = "";
            for (int i = 1; i <= n; i += 2)
            {
                for (int j = 0; j < (n - i) / 2; j++)
                    s += " ";
                for (int j = 0; j < i; j++)
                {
                    s += "*";
                }
                s += "\n";
            }
            s = s[..^1];
            if (!goUp) s = string.Join("\n", s.Split("\n").Reverse());
            up.Text = @$"數值: {n}
顯示方向: {(goUp ? "正向" : "垂直反轉")}
{s}";

            if (hollow)
            {
                s = "";
                for (int i = 1; i <= n; i += 2)
                {
                    for (int j = 0; j < (n - i) / 2; j++)
                        s += " ";
                    for (int j = 0; j < i; j++)
                    {
                        s += j == 0 || j == i - 1 || i == n ? "*" : " ";
                    }
                    s += "\n";
                }
                s = s[..^1];
                if (!goUp) s = string.Join("\n", s.Split("\n").Reverse());
                down.Text = @$"數值: {n}
顯示方向: {(goUp ? "正向" : "垂直反轉")}
設為中空
{s}";
            }
        }
    }
}

Last updated