C#面向对象总结小项目之实现英雄联盟回合制小游戏(文字版)

完成模拟英雄联盟1V1对战的回合制文字游戏

具体要求如下:

  • 英雄初始没有学习技能,也没有装备

  • 英雄每回合可以
    1 选择学习⼀个技能【每个英雄最多学习4个技能】
    或给学过的技能升⼀级【每个技能最⾼3级,默认1级】

  • 升级后的技能伤害有所提⾼
    特殊效果可以酌情设计【眩晕、沉默等】(选做)

  • 英雄每回合可以选择行动⼀次(三种行动可选,但会因为所处状态有所限制)
    1、【普通攻击】(若被眩晕,则不可做此操作)
    普通攻击造成伤害
    造成伤害之后,还会获得相应的⾦钱

    2、或【技能攻击】(若被眩晕或者沉默,则不可做此操作)
    技能攻击造成伤害
    造成伤害之后,还会获得相应的⾦钱
    技能攻击还可以使对⽅【(选做)】
    【眩晕(每三回合能使⽤⼀次)】下回合对⽅不能攻击
    【沉默(每两回合能使⽤⼀次)】下回合对⽅不能释放技能
    【其他技能攻击模式可⾃⾏设计】

    3、 或购买⼀件装备(任意状态皆可做此操作)

  • 购买装备需要⽀付⾦钱

  • 每个英雄最多购买6件装备

  • 两个英雄回合交替,直⾄⼀⽅英雄死亡

需求分析:
首先,我们肯定需要一个英雄类,一个装备类,一个技能类,一个商店类,一个装备类型的枚举,一个英雄状态的枚举,一个初始化操作的程序入口(main)。当然还可以细分装备的种类等等,博主这里偷懒就没有做细分,武器装备和消耗品都放在一起,读者可以自行添加(通过子类继承装备类重写可以实现)

下面开始上代码:

一、装备类

using System;

namespace textGame
{
   
    /// <summary>
    /// 装备类
    /// </summary>
    class Equipment
    {
   
        /// <summary>
        /// 装备名称
        /// </summary>
        public string name;

        /// <summary>
        /// 攻击加成
        /// </summary>
        public int adUp;

        /// <summary>
        /// 法强加成
        /// </summary>
        public int apUP;

        /// <summary>
        /// 护甲加成
        /// </summary>
        public int armorUp;

        /// <summary>
        /// 魔抗加成
        /// </summary>
        public int magicResistanceUp;

        /// <summary>
        /// 购买价格
        /// </summary>
        public int buyPrice;

        /// <summary>
        /// 出售价格
        /// </summary>
        public int sellPrice;

        /// <summary>
        /// 装备类型
        /// </summary>
        public EquipmentType type;

        /// <summary>
        /// 回复血量
        /// </summary>
        public int hp;

        public Equipment(string name, int adUp, int apUP, int armorUp, int magicResistanceUp, int buyPrice, int sellPrice, EquipmentType type, int hp)
        {
   
            this.name = name;
            this.adUp = adUp;
            this.apUP = apUP;
            this.armorUp = armorUp;
            this.magicResistanceUp = magicResistanceUp;
            this.buyPrice = buyPrice;
            this.sellPrice = sellPrice;
            this.type = type;
            this.hp = hp;
        }

        /// <summary>
        /// 装备详情介绍方法
        /// </summary>
        public void Introduce()
        {
   
            if (type == EquipmentType.Normal)
            {
   
                Console.WriteLine($"-------【装备名称】:{name}-------");
                Console.WriteLine($"【装备花费:{buyPrice}】");
                Console.WriteLine($"【装备类型:普通类型】");
                Console.WriteLine($"【攻击加成:{adUp}】");
                Console.WriteLine($"【法术加成:{apUP}】");
                Console.WriteLine($"【护甲加成:{armorUp}】");
                Console.WriteLine($"【魔抗加成:{magicResistanceUp}】");
                Console.WriteLine("---------------------------------------------");
            }
            else
            {
   
                Console.WriteLine($"-------【装备名称】:{name}-------");
                Console.WriteLine($"【装备花费:{buyPrice}】");
                Console.WriteLine($"【装备类型:消耗品】");
                Console.WriteLine($"【装备回复生命值:{hp}】");
                Console.WriteLine("---------------------------------------------");
            }
            
        }

    }
}

二、装备类型枚举


namespace textGame
{
   
    /// <summary>
    /// 装备类型的枚举
    /// </summary>
    enum EquipmentType
    {
   
        /// <summary>
        /// 普通类型
        /// </summary>
        Normal,

        /// <summary>
        /// 消耗品
        /// </summary>
        Consumables
    }
}

三、技能类

using System;

namespace textGame
{
   
    /// <summary>
    /// 技能类
    /// </summary>
    class Skill
    {
   
        /// <summary>
        /// 技能名称
        /// </summary>
        public string name;

        /// <summary>
        /// 技能等级
        /// </summary>
        public int level;

        /// <summary>
        /// 技能附加状态
        /// </summary>
        public State state;

        /// <summary>
        /// 是否学习了该技能
        /// </summary>
        public bool isStudy;

        /// <summary>
        /// 技能伤害
        /// </summary>
        public int dmg;

        /// <summary>
        /// 技能CD
        /// </summary>
        public int cd;

        /// <summary>
        /// 记录技能cd情况
        /// </summary>
        public int cdCount;

        /// <summary>
        /// 技能升级
        /// </summary>
        public bool LevelUp()
        {
   
            if (isStudy == true)
            {
   
                if (level < 3)
                {
   
                    level++;
                    Console.WriteLine($"技能{name}升级成功!");
                    return true;
                }
                else
                {
   
                    Console.WriteLine("技能已满级!");
                    return false;
                }
                
            }
            else
            {
   
                Console.WriteLine("该技能尚未学习,无法升级!");
                return false;
            }
        }

        /// <summary>
        /// 学习技能
        /// </summary>
        public bool StudySkill()
        {
   
            //判断是否学习过
            if (isStudy == false)
            
  • 21
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值