• 类例程_c#战斗程序(窗体版)


    战士类代码:

    class Fight
        {
            String name;
            int  attack, speed, crit, armor;// 生命、攻击力,攻速,暴击,护甲
            public int life;
            public Form1 main_Form;
            public void set_MainForm(Form1 x)
            {
                main_Form = x;
            }
    
            public void set_Fight(String a, int a1, int a2, int a3, int a4, int a5)//可改为构造函数
            {
                name = a;
                life = a1;
                attack = a2;
                speed = a3;
                crit = a4;
                armor = a5;
            }
    
            public void attack_Sb(Fight x)
            {
                int send_attack;
                Random r1 = new Random();
                if (r1.Next(100) <= crit)
                {
                    send_attack = attack * speed * 2;
                }
                else
                {
                    send_attack = attack * speed;
                }
                main_Form.set_Text(name + "发出攻击:" + send_attack);
                x.be_Attack(send_attack);
            }
    
            public void be_Attack(int x)
            {
                life = (int)(life - x * 100.0 / (100 + armor));
                show_Me();
            }
            void show_Me()
            {
                main_Form.set_Text(name + ",life:" + life);
            }
        }
    

      窗体调用代码:

    private void button1_Click(object sender, EventArgs e)
            {
                Fight shoot, soldier;
                shoot = new Fight();
                soldier = new Fight();
                shoot.set_MainForm(this);
                soldier.set_MainForm(this);
                shoot.set_Fight("射手", 300, 75, 2, 10, 30);
                soldier.set_Fight("战士", 500, 90, 1, 20, 45);
                textBox1.Text = "";
                while (true)
                {
                    shoot.attack_Sb(soldier);
                    if (soldier.life <= 0)
                    {
                        break;
                    }
                    soldier.attack_Sb(shoot);
                    if (shoot.life <= 0)
                    {
                        break;
                    }
                    set_Text("------------");
                }
            }
            public void set_Text(string s)
            {
                textBox1.Text += "
    " + s;
            }
    

      

  • 相关阅读:
    if
    C#
    C#
    C#
    .net 5.0
    .net 5.0
    .net 5.0
    设计模式
    GAN网络中采用导向滤波的论文
    pytorch~多loss的选择
  • 原文地址:https://www.cnblogs.com/wanjinliu/p/11001033.html
Copyright © 2020-2023  润新知