java兽的简单介绍

博主:adminadmin 2022-11-28 23:54:05 44

今天给各位分享java兽的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

JAVA作业求解答 (1)定义动物类Animal类,成员变量有名称和年龄,成员方法有构造方法、设置

package com.animaltest;

public class Animal {

private String name;

private int age;

public Animal(String name, int age){

this.name = name;

this.age = age;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public void outPut(){

System.out.println("name:"+this.getName());

System.out.println("age:"+this.getAge());

}

}

package com.animaltest;

public interface Eattable {

void beatted();

}

package com.animaltest;

public class Bird extends Animal{

private String wing;

private String flyDistance;

public Bird(String name, int age) {

super(name, age);

this.wing = wing;

this.flyDistance = flyDistance;

}

public String getWing() {

return wing;

}

public void setWing(String wing) {

this.wing = wing;

}

public String getFlyDistance() {

return flyDistance;

}

public void setFlyDistance(String flyDistance) {

this.flyDistance = flyDistance;

}

@Override

public void outPut() {

super.outPut();

System.out.println("wing:"+this.getWing());

System.out.println("flyDistance:"+this.getFlyDistance());

}

}

package com.animaltest;

public class Beast extends Animal implements Eattable{

private String localPlace;

private String food;

public Beast(String name, int age) {

super(name, age);

this.localPlace = localPlace;

this.food = food;

}

public String getLocalPlace() {

return localPlace;

}

public void setLocalPlace(String localPlace) {

this.localPlace = localPlace;

}

public String getFood() {

return food;

}

public void setFood(String food) {

this.food = food;

}

@Override

public void beatted() {

System.out.println();

}

@Override

public void outPut() {

super.outPut();

System.out.println("localPlace:"+this.getLocalPlace());

System.out.println("food:"+this.getFood());

}

}

java当中怪物类如何引用武器类打怪兽类

这是个挺有趣的问题,我们可以一起来分析下:

1.这里面只有两个类,武器类和怪兽类;而动作只有一个,打。

2.面向对象的思想是为类分配职责,那么打这个动作到底分配给谁?

很明显应该分配给怪兽类,因为打这个动作涉及的大部分数据都是怪兽类包含的,从常识上来讲分配给武器类感觉怪怪的...

3.从上面可以想象到会出现这样的情况monster.hit(otherMonster),这里monster是打,otherMonster是被打。hit方法里面需要将otherMonster的信息获取出来,然后计算打的过程...这样会把otherMonster的数据封装破坏掉,如果扩展otherMonster,显然你必需要在hit方法里判断otherMonster是哪种类型。但是monster.hit(otherMonster)又是符合对象的思维的。那么问题出在哪里?

问题出在打是一个动词,打这个方法分配给了一个对象,但作用的是另一个对象,因此而破坏了数据封装。如果打分配给一个对象,同时作用的是这个对象,那么问题就解决了。

怎样把打分配给一个对象,同时作用的是这个对象呢?答案是把打转换成被打,于是就成了otherMonster.hit(),在monster需要去打otherMonster时,调用otherMonster.hit()就可以了。

4.武器类还没有被引入进来,明显武器不会自动攻击,他必须装备在monster上,我们可以把weapon作为monster的成员。

5.武器类可以被使用在打这个动作上,于是我们为hit方法增加武器参数,于是就变成otherMonster.hit(weapon),这个方法是在monster内部调用的,weapon也是monster的成员,没有破坏封装性。

6.至此,你提的这个问题就是这样了...

class Monster{

    private Weapon weapon;

    

    public void hit(Weapon weapon){

        //dosometing.

    }

    

    public Weapon getWeapon(){

        return weapon;

    }

    

    public void setWeapon(Weapon weapon){

        this.weapon = weapon;

    }

}

是不是感觉怪怪的...我们可以继续来探讨这个问题:

为什么感觉怪怪的?是因为这个问题太简化了,简化到我们并不知道Monster被打之后到底发生什么。

感觉这个很像个游戏,大部分游戏都是基于hitpoint(血量)的,为了使这个问题带感一些,我们给Monster一个int类型的hitPoint。

同时给武器类赋予一个attackPoint,在Monster被打的时候扣除attackPoint数量的hitPoint。

那么问题来了,hit方法里需要获取Weapon中的attackPoint,这又会把Weapon的数据封装破坏掉...

为此我们需要给Monster一个直接扣除hitPoint的方法damage(int attackPoint),让Weapon能够调用damage方法把自身的attackPoint传递进来。

Weapon本身我们可以分配一个attack(Monster monster)方法来给Monster把自身传递进来,于是程序就变成了:

class Monster{

    private Weapon weapon;

    

    private int hitPoint;

    

    public void hit(Weapon weapon){

        weapon.attack(this);

    }

    

    public void damage(int attackPoint){

        this.hitPoint -= attackPoint;

    }

    

    public Weapon getWeapon(){

        return weapon;

    }

    

    public void setWeapon(Weapon weapon){

        this.weapon = weapon;

    }

}

class Weapon{

    private int attackPoint;

    

    public void attack(Monster monster){

        monster.damage(attackPoint);

    }

}

也许有人会问,hit里面调用weapon.attack,attack里面又调用monster.damage,那还不如在hit里直接获取weapon的attackPoint,然后直接扣除hitPoint。

为什么要这么麻烦呢?实际上这里Weapon是一个策略(Strategy模式),由策略来决定对对象到底采取什么样的作用。这里感觉麻烦也是因为问题太简单了。

再带感一点,我们参考网游的做法,Monster本身有一定的躲避和格挡率,同时某些Weapon可能会有暴击率:

此时我们需要在hit方法里先计算是否躲避或者格挡,如果都不成功,才调用weapon.attack(this).在attack方法里,需要先计算是否暴击,如果暴击,则把attackPoint乘以2。于是又变成了

class Monster{

    private Weapon weapon;

    

    private int hitPoint;

    

    private int dodge;//100%比例

    

    private int block;//100%比例

    

    public void hit(Weapon weapon){

        if (isDodge()){

            return;

        }

        if (isBlock){

            return;

        }

        weapon.attack(this);

    }

    

    public void damage(int attackPoint){

        this.hitPoint -= attackPoint;

    }

    

    public boolean isDodge(){

        //COMPUTE IS DODGE?

    }

    

    public boolean isBlock(){

        //COMPUTE IS BLOCK?

    }

    

    public Weapon getWeapon(){

        return weapon;

    }

    

    public void setWeapon(Weapon weapon){

        this.weapon = weapon;

    }

}

class Weapon{

    private int attackPoint;

    

    private int critical;//100%比例

    

    public void attack(Monster monster){

        int actualAttackPoint = isCritical()?attackPoint*2:attackPoint;

        monster.damage(actualAttackPoint);

    }

    

    public boolean isCritical(){

        //COMPUTE IS CRITICAL

    }

}

这样就不觉得麻烦了...

最后应该把monster抽象成接口,因为可能不只是monster可以被武器打哦

你还可以后面再加入怎么判断Monster挂了,通过观察者模式来通知打人者,还有其他各种各样带感的东西。

祝你好运!

JAVA游戏神兽传说攻略

游戏流程攻略:

树林里,我们的男主角凡正在借练功知名烤肉的时候突然女一号露迪出现,说村长找他有急事,于是凡极不情愿的被露迪押送回村,故事就这样开始了…

任务1:药剂师胡特—村子里的药剂师为了泡MM以100金币为代价让凡替他跑腿去采集3株森林草,不知情的主角在回来之后才发现自己被利用了,不过好在有钱赚,也没有抱怨太多。森林草在村子上方的高山森林获得

任务23: 道具/装备的合成—去村子的北面与道具合成NPC,装备合成NPC对话即可

任务4:考前说明—对话完成后找村长回复,接受猎人考试的资格。

PS:正在这个时候,女一号露迪被血刃巨龙抓走了,于是凡的下一个任务就是直接去挑战boss….T_T

任务5:营救露迪--去高山森林的最后一个场景找到血刃巨龙,营救露迪。由于这是一个必然失败的任务,所以玩家不用费心的去打装备想要一次就把露迪救出来(血刃龙第一次是打不死滴…)只要过去被龙打晕就好了。在高山森林的第二个场景左侧有一条近路,可以直接到达最后一个场景,多多利用哦~

任务6:采集雪山草—采集任务大都相似,雪山草的生长位置是冰冷雪山,不过这里的蓝龙对玩家的威胁还是很大,注意随时存盘,等级高了再回来杀它们…嗯

任务7:毛球怪的骨头—去高山森林杀死毛球怪获得5个骨头交给村长,没什么好说的,动手吧,终于有主角可以欺负的动的怪了

任务8:密林中的野猪—毛球怪的下一个场景有好多野猪啊,杀死5只回来报告就行了,很简单,注意搜集材料,野猪掉的东西可以合成装备的哦

任务9:矿石的挖掘—去矿洞里面挖5块铁矿石,采集任务,没什么好说的,挖吧。请注意挖掘也是需要体力的 嘿嘿… 而且采集类任务完成后道具不会消失,既然来了,顺手多挖几个吧,以后用得上的。

任务10:自制烤肉—自己动手丰衣足食,制作5块烤肉回复村长。初级的任务比较简单,什么等级的烤肉都行,不过为了自己的肚子,还是尽量烤好吧。

任务11:剧毒瓢虫—去高山森林杀死5只剧毒瓢虫。请玩家注意一下,瓢虫的攻击带有减速效果,可以使用弓箭在远处慢慢欺负它们,爆出的材料是做剧毒套必须的,多收集一点吧

任务12:回复药水—合成3个大回复药水交给村长,3个回复药水需要9个雪山草.. 挖去吧 ,如果已经装备上剧毒套装的,可以去欺负蓝龙啦。不过蓝龙攻击速度很快,不要被围攻就好。

任务13:高档磨石—合成3个高档磨石交给村长,没什么好说的,去矿洞挖矿吧。

任务14:打造猎人之刃—这个时候应该早就淘汰这个装备了,没有的去合成一下,有的直接就可以完成这个任务了。

任务15:剧毒斩马刃—做到这里正好应该装备的武器,赶紧去合成吧。

任务16:猎人的服装—合成猎人套装,现在身上应该已经有剧毒套装了,这个任务可以直接完成啦。

任务17:猎人之弓—喜欢用弓箭的玩家肯定已经装备比这个好的弓箭了,没有的赶快去合成吧。

任务19:封印血刃巨龙—到目前位置最有挑战的任务,也是初级猎人毕业的最后一个任务, 建议穿极寒套装去打,蓝兽套装也行,不过最好能有极寒之刃。有什么魔法都装备上,推荐风系和火系的,攻击力高。血刃龙有混乱技能,被打中后方向键的功能会颠倒过来,很讨厌..而且有冰冻技能,如果有能力合成驱寒药水和明目药水的可以带几个。总之利用巨剑的攻击范围和魔法配合,尽量不要正面对着boss打就ok啦。杀死血刃龙后会爆巨龙雄刃以及巨龙套装的材料,有兴趣的玩家可以来反复杀它合成套装。

以上就是洛溪村初级猎人考试的全部内容。与村长一番对话后,新的地图开启,凡将进入瓦尔蒂姆城寻找法典的秘密以及挑战中级猎人的考试。

任务20:击退地狱炎兽—城主的女儿被地狱炎兽抓走了(怎么巨龙就喜欢抓MM…),凡需要帮助士兵击退地狱炎兽。这个boss在酷热沙漠的的倒数第二个场景,第一次也是打不死的,打掉1/10血的时候会触发剧情,所以不用浪费魔法了,直接上去砍就好。救出公主后如果有装备好的玩家可以回头试试杀它,会爆炎魔套装/巨剑的材料哦。

任务21:沙漠中的生命—采集5朵沙漠之花交给城主,没什么好说的,去酷热沙漠挖吧。

任务22:闪光的金矿石—采集3个金矿石交给城主,去矿洞,挖呀挖。

任务23:凶猛的蓝速兽—消灭10只蓝速兽。直接去冰冷雪山欺负它们吧,第一个场景就有好多。现在的装备欺负它们很轻松了。

任务24:蓝速兽的遗产—合成蓝缎刀一把。做完上一个任务得到的材料正好用来完成这个任务,哈哈。

任务25:沙漠之王—消灭8只沙漠炎兽。注意炎兽的点燃技能,很讨厌…有降温药水的带上吧

任务26:岩凯巨刃—打造岩凯巨刃一把。任务25的材料正好来完成这个任务,这把剑的特点就是耐久比较高。

任务27:蓝速兽王—消灭10只蓝速兽王。注意,兽王是头上有红冠会混乱技能的,在雪山第二个场景才开始有,不要打错了。

任务28:高档烤肉—缴纳5个高档烤肉给城主。这次是高档烤肉啦,要好好烤哦,要不然城主不要的。

任务29:岩凯之努—合成一把岩凯之努。也是打沙漠炎兽出的材料,这次我们也可以有点燃效果了,哈哈。

任务30:极寒龙王—消灭2只极寒龙王。进入冰冷雪山之后走左下角的那条路,进到第二个场景就有一个,杀完之后会很快刷新,省的跑路了。现在的装备打它很轻松啦

任务31:野猪泛滥—消灭20只野猪。沙漠和高山森林都有,装备上巨剑基本是一剑2头。

任务32:封印地狱炎兽—游戏中最后一个实际上的boss了(为什么这么说玩下去就知道了哦),在地狱岩洞里面 进去以后向上走一点,有一条向右的小路(挺隐蔽的,第一次没找到…囧)这个boss只会火系魔法,攻击力很高,而且在你看不到它的时候他就开始放魔法了,基本都是范围攻击的魔法。如果有炎魔套装的打起来相对会好一些,建议多带血瓶和降温药水,血到一半就开始补(要不然有被秒杀的可能),魔法用冰鸟加旋风,冻住了去它身下面放旋风,保证每个小旋风都能打到它,伤害很高的。

杀掉boss之后凡凯旋回程,但是却被人抓走,原来身上的法典却有另一番故事,至于是什么故事,凡的命运怎样,敬请期待神兽传说第二部。

java兽的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、java兽的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-28,除非注明,否则均为首码项目网原创文章,转载请注明出处。