猎人做了论功行赏的决定.


一条猎狗将兔子赶出了窝,一直追赶他,追了很久仍没有捉到。牧羊看到此种情景,讥笑猎狗说‘你们两个之间小的反而跑得快得多。‘猎狗回答说:‘你不知道我们两个的跑是完全不同的!我仅仅为了一顿饭而跑,他却是为了性命而跑呀!


目标



这话被猎人听到了,猎人想:猎狗说的对啊,那我要想得到更多的猎物,得想个好法子.于是,猎人又买来几条猎狗,凡是能够在打猎中捉到兔子的,就可以得到几根骨头,捉不到的就没有饭吃.这一招果然有用,猎狗们纷纷去努力追兔子,因为谁都不愿意看着别人有骨头吃,自已没的吃.就这样过了一段时间,问题又出现了.大兔子非常难捉到,小兔子好捉.但捉到大兔子得到的奖赏和捉到小兔子得到的骨头差不多,猎狗们善于观察发现了这个窍门,专门去捉小兔子.慢慢的,大家都发现了这个窍门.猎人对猎狗说:最近你们捉的兔子越来越小了,为什么?猎狗们说:反正没有什么大的区别,为什么费那么大的劲去捉那些大的呢?


动力



猎人经过思考后,决定不将分得骨头的数量与是否捉到兔子挂钩,而是采用每过一段时间,就统计一次猎狗捉到兔子的总重量.按照重量来评价猎狗,决定一段时间内的待遇.于是猎狗们捉到兔子的数量和重量都增加了.猎人很开心.但是过了一段时间,猎人发现,猎狗们捉兔子的数量又少了,而且越有经验的猎狗,捉兔子的数量下降的就越利害.于是猎人又去问猎狗.猎狗说‘我们把最好的时间都奉献给了您,主人,但是我们随着时间的推移会老,当我们捉不到兔子的时候,您还会给我们骨头吃吗?‘



猎人做了论功行赏的决定.分析与汇总了所有猎狗捉到兔子的数量与重量,规定如果捉到的兔子超过了一定的数量后,即使捉不到兔子,每顿饭也可以得到一定数量的骨头.猎狗们都很高兴,大家都努力去达到猎人规定的数量.一段时间过后,终于有一些猎狗达到了猎人规定的数量.这时,其中有一只猎狗说:我们这么努力,只得到几根骨头,而我们捉的猎物远远超过了这几根骨头.我们为什么不能给自己捉兔子呢?‘于是,有些猎狗离开了猎人,自己捉兔子去了骨头与肉兼而有之……



猎人意识到猎狗正在流失,并且那些流失的猎狗像野狗一般和自己的猎狗抢兔子。情况变得越来越糟,猎人不得已引诱了一条野狗,问他到底野狗比猎狗强在那里。野狗说:“猎狗吃的是骨头,吐出来的是肉啊!”,接着又道:“也不是所有的野狗都顿顿有肉吃,大部分最后骨头都没的舔!不然也不至于被你诱惑。”于是猎人进行了改革,使得每条猎狗除基本骨头外,可获得其所猎兔肉总量的n,而且随着服务时间加长,贡献变大,该比例还可递增,并有权分享猎人总兔肉的m。就这样,猎狗们与猎人一起努力,将野狗们逼得叫苦连天,纷纷强烈要求重归猎狗队伍。


只有永远的利益,没有永远的朋友


日子一天一天地过去,冬天到了,兔子越来越少,猎人们的收成也一天不如一天。而那些服务时间长的老猎狗们老得不能捉到兔子,但仍然在无忧无虑地享受着那些他们自以为是应得的大份食物。终于有一天猎人再也不能忍受,把他们扫地出门,因为猎人更需要身强力壮的猎狗……
游戏架构设计: 1. 游戏角色类设计 ```csharp class Character { public string Name { get; set; } // 角色名字 public int Level { get; set; } // 角色等级 public int Health { get; set; } // 角色生命值 public int Mana { get; set; } // 角色魔法值 public int Strength { get; set; } // 角色力量值 public int Intelligence { get; set; } // 角色智力值 public int Agility { get; set; } // 角色敏捷值 public Weapon Weapon { get; set; } // 角色武器 } ``` 2. 游戏武器类设计 ```csharp abstract class Weapon { public string Name { get; set; } // 武器名称 public int Damage { get; set; } // 武器伤害值 public abstract void Attack(); // 攻击方法 } class Axe : Weapon { public override void Attack() { Console.WriteLine("砍!造成 " + Damage + " 点伤害!"); } } class Bow : Weapon { public override void Attack() { Console.WriteLine("射!造成 " + Damage + " 点伤害!"); } } class Wand : Weapon { public override void Attack() { Console.WriteLine("咒!造成 " + Damage + " 点伤害!"); } } ``` 3. 游戏职业类设计 ```csharp abstract class Job { public string Name { get; set; } // 职业名称 public abstract Weapon GetWeapon(); // 获取职业对应武器 } class Warrior : Job { public Warrior() { Name = "战士"; } public override Weapon GetWeapon() { return new Axe { Name = "斧头", Damage = 10 }; } } class Hunter : Job { public Hunter() { Name = "猎人"; } public override Weapon GetWeapon() { return new Bow { Name = "弓", Damage = 8 }; } } class Mage : Job { public Mage() { Name = "法师"; } public override Weapon GetWeapon() { return new Wand { Name = "法杖", Damage = 12 }; } } ``` 4. 游戏主程序设计 ```csharp class Program { static void Main(string[] args) { Character character = new Character { Name = "小明", Level = 1, Health = 100, Mana = 100, Strength = 10, Intelligence = 10, Agility = 10 }; // 选择职业 Console.WriteLine("请选择职业:"); Console.WriteLine("1. 战士"); Console.WriteLine("2. 猎人"); Console.WriteLine("3. 法师"); int jobIndex = int.Parse(Console.ReadLine()) - 1; Job[] jobs = { new Warrior(), new Hunter(), new Mage() }; Job job = jobs[jobIndex]; // 装备武器 character.Weapon = job.GetWeapon(); Console.WriteLine("你选择了 " + job.Name + ",装备了 " + character.Weapon.Name); // 进入游戏 Console.WriteLine("游戏开始!"); while (true) { Console.WriteLine("请选择操作:"); Console.WriteLine("1. 攻击"); Console.WriteLine("2. 换武器"); int input = int.Parse(Console.ReadLine()); if (input == 1) { character.Weapon.Attack(); } else if (input == 2) { Console.WriteLine("请选择新武器:"); Console.WriteLine("1. 斧头"); Console.WriteLine("2. 弓"); Console.WriteLine("3. 法杖"); int weaponIndex = int.Parse(Console.ReadLine()) - 1; Weapon[] weapons = { new Axe { Name = "斧头", Damage = 10 }, new Bow { Name = "弓", Damage = 8 }, new Wand { Name = "法杖", Damage = 12 } }; character.Weapon = weapons[weaponIndex]; Console.WriteLine("你换了 " + character.Weapon.Name); } } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值