• 打架


    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;

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

    private void button1_Click(object sender, EventArgs e)
    {
    Lm L = new Lm(textBox2.Text, 500, 150, 50);
    Hero H = new Hero(textBox1.Text, 800, 200, 100);

    while (H.Hp > 0 && L.Hp > 0)
    {
    L.Fight(H);
    richTextBox1.AppendText(string.Format("{0}的血剩{1}\n",H.Name,H.Hp));

    if(H.Hp>0)
    {
    H.Fight(L);
    richTextBox1.AppendText(string.Format("再经战{0}血量剩{1}\n",L.Name,L.Hp));
    }
    }

    if (L.Hp <= 0)
    {
    richTextBox1.AppendText(string.Format("{0}挂了", L.Name));
    }

    if (H.Hp <= 0)
    {
    richTextBox1.AppendText(string.Format("{0}挂了", H.Name));
    }
    }
    }

    #region
    /*a.此项目中创建人物基类(抽象类),在人物基类中包含:(5分)
    I.基本属性:姓名,生命值,攻击力,防御力(均要求封装);
    II.基本方法:攻击(抽象方法);
    III.构造函数:对4个属性进行赋值。
    b.此项目中创建英雄类,其要求如下:(5分)
    IV.i.继承人物类;
    V.ii.构造函数继承父类;
    VI.iii.实现人物类中的“攻击”抽象方法。
    c.此项目中创建流氓类,其要求如下:(5分)
    VII.i.继承人物类
    VIII.ii.构造函数继承父类
    IX.iii.实现人物类中的“攻击”抽象方法。
    构造1个英雄类的对象,1个流氓类对象,使用While循环进行PK演示,当一方的生命值消耗完毕后即停止,注意多态的使用*/
    #endregion

    abstract class People
    {
    string name;//在抽象类中定义自己的字段
    public string Name//将字段封装成属性
    {
    get { return name; }
    set { name = value; }
    }

    int hp;
    public int Hp
    {
    get { return hp; }
    set //设置值
    {
    if (value < 0)
    {
    hp = 0;
    }
    else
    {
    hp = value;
    }
    }
    }

    int gjl;
    public int Gjl
    {
    get { return gjl; }
    set { gjl = value; }
    }

    int fyl;
    public int Fyl
    {
    get { return fyl; }
    set { fyl = value; }
    }

    public abstract void Fight(People P);//定义一个抽象的方法,方法是一个不带返回值,但是带一个类类型的参数

    public People(string pname, int php, int pgjl, int pfyl)//定义一个带参数的构造函数,字段赋初值
    {
    name = pname; hp = php; gjl = pgjl; fyl = pfyl;//将参数赋值给字段
    }
    }

    class Hero : People//定义一个Hero的类,让其继承抽象类
    {
    public Hero(string hname, int hhp, int hgjl, int hfyl)//继承抽象类中的构造函数
    : base(hname, hhp, hgjl, hfyl)
    { }

    public override void Fight(People P)//实现抽象类中的方法
    {
    //throw new NotImplementedException();
    if (this.Gjl < P.Fyl)
    { }
    else
    { P.Hp -= this.Gjl - P.Fyl; }
    }
    }

    class Lm : People//定义一个Lm类,也继承抽象类
    {
    public Lm(string lname, int lhp, int lgjl, int lfyl)//继承抽象类中的构造函数
    : base(lname, lhp, lgjl, lfyl)
    { }

    public override void Fight(People P)//实现抽象类中的方法
    {
    //throw new NotImplementedException();
    if (this.Gjl > P.Fyl)
    { P.Hp -= this.Gjl - P.Fyl;}
    }
    }
    }

  • 相关阅读:
    如何解决错误【selenium.common.exceptions.SessionNotCreatedException】
    VSFTP常用功能及参数配置
    ROS白名单服务端PHP脚本,客户端ROS脚本
    ocserver标准配置文件
    linux send与recv函数详解
    LINUX 恢复rm删除的文件
    C语言实现md5函数代码
    linux c语言获取CPU,内存,网速,磁盘使用,IO
    linux c语言fork socket 并发回射服务器
    杨惠兰不值得任何人付出
  • 原文地址:https://www.cnblogs.com/meroselove/p/1828391.html
Copyright © 2020-2023  润新知