Java的一个实际应用题

用面向对象方法OOA、OOD、OOP解决下列问题,结合现有你所能够实现的类的设计手段(类的封装、继承、域修饰符、构造函数、static、abstract、interface、this、super、多态、重载等等)编写一个Java程序:

设计实现一个抽象父类:MyPeraon(属性:性别、年龄、等级、生命1000,均为private),然后由此父类派生出

MyMerchant(属性:收购产品-金、银、铜、铁、魔法矿,面包、面条、馒头;制作产品-刀、剑、犁、锄、魔法杖、魔法球、魔法石)、

MyKnight(属性:使用-金、银、铜、铁四种不同材质的刀或者剑,馒头、面条,面包,产出-物理攻击;通过练习获取资金购买道具、提升等级)、MyMagi(属性:使用-金、银、铜、铁四种不同材质的魔法杖或者魔法球,馒头、面条、面包,魔法石,产出-法力攻击;通过练习获取资金购买道具、提升等级)

和MyFarmer(属性:使用-金、银、铜、铁四种不同材质的犁、锄,馒头、面包、面条;产出-馒头、面包、面条、金、银、铜、铁、魔法矿;通过生产获取资金购买道具、提升等级),

所有角色,如果收到超出生命力值的物理攻击、法力攻击均会死亡,如果一定时间不吃饭,就会饿死:

最初一个商人、一个骑士、一个法师、10个农民;自行设定所有需要的函数,搭建一个没有彼此攻击的、四种角色均有中级职业者的、配备至少一件道具的、可以维持持续生存的基本生态系统,并输出一定时间后的统计状态:面包多少、每天多少、面条多少、刀剑各多少、魔法杖魔法石多少、每个职业的等级是什么,什么装备,多少金币;此时,各自的劳动、攻击的具体值是多少?

说明:

所有职业均分三个等级:高级(效率3.0)、中级(效率2.0)、初级(效率1.0);所有职业、所有等级,每一天消耗一个面包、或者一个馒头或者一碗面条,如果连续七天不吃饭,就会饿死。所有职业开始均无工具。

金、银、铜、铁四种不同材质的工具、武器、魔法杖、魔法石,其增强效率分别为:8.0、6.0、4.0、2.0;所有职业一旦资金允许自动购买最佳装备,并卖出原有装备,获取金币。

MyFarmer,基本生产效率因子2,初始资金0,利用工具生产所有物资的速度:锄(效率1.1)犁(1.8)、消耗食物的速度为1.0;获取食物、金银铜铁、魔法石的效率为1.0、1、2、4、8、1;锄(价格700)犁(1900)

其中,金银铜铁、魔法矿,商人买入:4、3、2、1、6,卖出8、6、4、2、12;其余职业卖出价格为:4、3、2、1、6;买入价格为:8、6、4、2、12;

 MyKnight,基本攻击力100,初始资金0,刀(效率1.6)剑(1.2)、消耗食物的速度为1.2;每一天练习20次,每练习一次获得一个金币,练习100天后,升为中级,练习1000天后,升为高级;剑,价格600;刀,价格1800;

MyMagi,基本攻击力100,初始资金0;魔法杖(效率1.5)魔法石(1.4)、消耗食物的速度为0.9;每一天练习28次,每练习一次获得一个金币,练习100天后,升为中级,练习1000天后,升为高级;魔法杖(价格1200)魔法石(价格1000)

MyMerchant,基本生产力100,初始资金20000;每一天买卖、或者制作18次,每练习一次获得一个金币,练习100天后,升为中级,练习1000天后,升为高级;每40、30、20、10、50块金、银、铜、铁、魔法矿,可制作一次成为一件工具:锄(效率1.1)犁(1.8)

 

拓展练习(可选): 

编写一个Java程序,描述以下状态:

a)如果所有职业的工作,都是选取的随机数作为每天工作的次数(随机数范围可预先设定),此变化效果如何?给出:一定时间后的统计状态:面包多少、每天多少、面条多少、刀剑各多少、魔法杖魔法石多少、每个职业的等级是什么,什么装备,多少金币;此时,各自的劳动、攻击的具体值是多少?

b)如果引入人才引进机制,有1000个多余的馒头、面包、面条后可以交换引进一个农民;有50000个多余的金币后可以交换引进一个商人;有800件多余的刀剑后可以交换引进一个骑士;有1200个多余的魔法杖、魔法石后可以交换引进一个法师;请问,该采用什么样的方法,才能够让该系统能够继续持久运行下去?

c)魔法界技术大跃进了,现在有这样的魔法石,就可以使得刀剑、魔法石、魔法杖、锄犁的攻击力倍增:八面体,每一个面彼此之间是全等三角形,或者相似三角形,请问:怎么样用接口实现判定不同的相似三角形、全等三角形?

d)该世界文明大跃进了,在骑士的装备中出现了,10米外即为远:弓(近攻:10、远攻:300)、弩(近攻:2、远攻:600)、枪(近攻:300、远攻:30)、戟(近攻:700、远攻:70),请问,该怎么样采用何种技术,实现骑士攻击力的上升?

e)该世界文明又大跃进了,在戟的基础上,实现了可拆卸式2G戟,采用投掷的方法,可以实现-2G戟(近攻:700、远攻:700),请问怎么样修改代码继续实现骑士攻击力的上升,工作量最小?

我都没耐心看完你这题,大哥说重点,......

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m