自己写了一个关于兵种的,因为一直在测试,到底面向对象是个什么玩意。。。然后就做了这个

namespace 兵种
{
class Role //作为父类,构建一个普通角色属性用于继承
{
protected int health;
protected int attack;
protected int speed;
protected int defend; public Role(int health,int attack,int speed,int defend)
{
this.health = health;
this.attack = attack;
this.speed = speed;
this.defend = defend;
} public void RoleData()
{
Console.WriteLine("你的人物属性是");
Console.WriteLine("HP :"+health);
Console.WriteLine("攻击 :"+attack);
Console.WriteLine("防御 :"+defend);
Console.WriteLine("速度 :"+speed);
} } class Saber : Role //继承父类,创建一个剑士角色
{
private string position = "剑士";
public Saber(int health, int attack, int speed, int defend) : base(health, attack, speed, defend)
{
}
public void skill()
{
Console.WriteLine("职业 :"+position);
Console.WriteLine("必杀技:EX咖喱棒");
}
} class Archer : Role //继承父类,创建一个弓箭角色
{
private string position = "弓箭手";
public Archer(int health, int attack, int speed, int defend) : base(health, attack, speed, defend)
{
}
public void skill()
{
Console.WriteLine("职业 :" + position);
Console.WriteLine("必杀技:无限剑制");
}
} class Caster : Role //继承父类,创建一个法师角色
{
private string position = "魔法师";
public Caster(int health, int attack, int speed, int defend) : base(health, attack, speed, defend)
{
}
public void skill()
{
Console.WriteLine("职业 :" + position);
Console.WriteLine("必杀技:理想乡");
}
} class RoleDataPosition //这是一次尝试,把职业数据写在一个类里面,这样不在主函数里面也方便查找和修改。
{
public Saber dataSaber = new Saber(, , , );
public Archer dataArcher = new Archer(, , , );
public Caster dataCaster = new Caster(, , , ); } class Program
{
static void Main(string[] args)
{
RoleDataPosition playerData = new RoleDataPosition();
for (int i = ; i < ; i++) //本来想用while,想了一下还是算了
{
Console.WriteLine("请选择你想要的职业");
Console.WriteLine("1.剑士");
Console.WriteLine("2.弓箭手");
Console.WriteLine("3.魔法师");
char choose = Console.ReadKey(true).KeyChar;
switch (choose)
{
case '':
playerData.dataSaber.RoleData();
playerData.dataSaber.skill();
break;
case '':
playerData.dataArcher.RoleData();
playerData.dataArcher.skill();
break;
case '':
playerData.dataCaster.RoleData();
playerData.dataCaster.skill();
break;
default:
Console.Clear();
i--; //用于输入错误不让跳出用
break;
}
} Console.ReadKey(); }
}
}

记录这个的原因,是因为我觉得,如果以后怪兽多了,也可以建立这样一个类,存储所有怪兽的属性,大概可能有这样的一个扩展空间,方便以后自己查询,先记录一下

自己从0开始学习Unity的笔记 VIII (C#中类继承练习 II)的更多相关文章

  1. 自己从0开始学习Unity的笔记 I (C#字符串转换为数字)

    我基本上从0开始学习编程,运算符基本上跳过,因为知道了 “=”这个符号相当于赋值,然后“==”才是等于,其他和普通运算符号差不都,也就跳过了. 最基础的赋值那种,我看了下代码,似乎没什么难度,估计新手 ...

  2. 自己从0开始学习Unity的笔记 VII (C#中类继承练习)

    好久都没有写了.今天做了类继承的练习,做了一个小队,进行简单的判定. namespace 兵团建立练习 { class ServantBasics { public string name; //pr ...

  3. 自己从0开始学习Unity的笔记 VI (C#的for循环练习)

    最近学到了for循环,我觉得其实看情况吧,和while挺像的,不过适合于累加或者累减这类的,for循环要更好用一点 for循环首先格式是 ; i < length; i++) { } 意思很简单 ...

  4. 自己从0开始学习Unity的笔记 V (C#的数组练习)

    今天练习了数组输入,先从最简单的开始,因为我输入完这些之后,觉得应该有更简单的方法,先来介绍一下我做的练习代码 //做一个最多能容纳10个数字的,用户可以输入任意1-10个数字,判断长度,输出数字 ] ...

  5. 自己从0开始学习Unity的笔记 IV (C#循环练习-数字猜谜游戏)

    想起来现在基础的已经学了不少了,那么这次试一下用while写一个数字猜谜的. Random roll = new Random(); //建立一个骰子 , ); //让骰子在1-100内随机一个数 ; ...

  6. 自己从0开始学习Unity的笔记 IV (C#循环练习输出素数)

    来测试一下循环....刚刚学了while循环,测试一下输出1-100的素数 我想了一下,素数就是只能被1和本身整除,那就是只能被整除2次,我是顺着这个思路写的代码,如果被整除超过2次,那么肯定不是素数 ...

  7. 自己从0开始学习Unity的笔记 III (C#随机数产生基础练习)

    自己开始尝试弄一下随机数,照着方法,自己做了个英雄打怪兽的测试 int heroAttack; ; ; Random attack = new Random(); //初始化一个随机数的类 heroA ...

  8. 自己从0开始学习Unity的笔记 II (C#条件语句基础练习)

    首先,自己用了下三目表达式,来做了一个闰年的判断,也就是能被400整除,或者是能够被4整除,但是不能被100整除的年份. int year; //输入的年 bool fourHunderd; //能被 ...

  9. 从0开始学习Unity的学习笔记(I 界面学习和简单模型拼装)

    先给一个大致今天学习的图,然后后面是细节 1.下载Unity :官网下载需要版本 2.Unity安装:一定不要有中文路径:一台电脑可以安装不同版本的Unity,但是要安装在不同的文件夹下: 3. 新建 ...

随机推荐

  1. HttpContext.Current并非无处不在

    阅读目录 开始 无处不在的HttpContext HttpContext.Current到底保存在哪里? HttpContext并非无处不在! 如何获取文件绝对路径? 异步调用中如何访问HttpCon ...

  2. fiddler工具条、状态栏、请求信息栏各按钮的作用

    1.fiddler工具条 2.fiddler状态栏 3.请求信息栏

  3. leetcode219

    public class Solution { Dictionary<int, List<int>> dic = new Dictionary<int, List< ...

  4. javascript 对象的扩展性

    javascript 对象 的可扩展性 javascript 对象中的可扩展性指的是:是否可以给对象添加新属性.所有的内置对象和自定义对象显示的都是可扩展的,对于宿主对象,则有javascript 引 ...

  5. nodejs-supervisor

    小技巧——使用 supervisor 如果你有 PHP 开发经验,会习惯在修改 PHP 脚本后直接刷新浏览器以观察结果,而你在开发 Node.js 实现的 HTTP 应用时会发现,无论你修改了代码的哪 ...

  6. k8s 1.10 关于rbac的坑

    apiserver  启动加上--authorization-mode=RBAC 开启rbac 会生成默认role,最高权限位cluster-admin的cluster role 再关闭rbac(不加 ...

  7. python之private variable

    [python之private variable] Since there is a valid use-case for class-private members (namely to avoid ...

  8. Android中asset文件夹与raw文件夹的区别深入解析(转)

    *res/raw和assets的相同点:1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制.*res/raw和assets的不同点:1.res/raw中的文件会被映射到R.j ...

  9. 在Linux(Ubuntu)下安装Arial、Times New Roman等字体

    在Linux下做文档.作图的时候,可能需要用到Arial和Times New Roman等字体.但是由于版权问题,Linux一般是不直接提供这些字体的. 注意字体也是有版权的!不过有版权也不代表一定会 ...

  10. Laravel 配置文件操作方法

    1)laravel 的所以配置文件都在根目录下的 config 目录里,直接看一个配置文件的名字就知道是做什么的了,这里不说了 2)读取配置的方法 $value = config('app.timez ...