猿问

向量列表问题

我是软件工程研究的一年级学生,我在做一个展示时遇到了一些麻烦。我给你一个我的项目的简要介绍。


不知道有没有人熟悉皇室战争这个游戏?它是一款基于获得更高奖杯和收集卡片的游戏。每个竞技场都会解锁新卡。


我想做一个甲板建造者。哪里可以选8张卡,我计算一下炼药的平均费用。我想要一个可以显示您的奖杯范围内所有可用卡片的功能。


顺便说一下,让我解释一下我的问题:我创建了一个超类:Card,并且类 Troop、Spell、DefBuilding 和 PassiveBuilding 扩展了该超类。之后,我创建了一个类:CardPool,我在其中定义了所有“卡片类”的所有对象。


然后我创建了一个 Class: Arena,我主要声明了所有的 arenas。我正在努力解决的问题是,我不知道如何将所有几张牌放入匹配竞技场的向量中。像卡片 1-2-3 需要进入竞技场 1 的向量,卡片 4-5-6 需要进入向量竞技场 2。只有我有 4 个不同的类,它们都是卡片。


所以实际的问题如下:如何制作竞技场 1(或 2、3、4)的向量列表并将 2 个部队、1 个法术、1 个 defBuilding 放入该向量列表中?最终,能够显示它们。


正如您在我的 CardPool 课程中看到的那样,我尝试的最后一次尝试是 Cast 课程。那没有用。


注意:我为我的 Class CardPool 做了一个界面,只是为了尝试一下,在学校听说过一些关于它的事情。


超类:卡


public class Card {

    private String name;

    private int elixer;


    public Card(String name, int elixer) {

        this.name = name;

        this.elixer = elixer;

    }

}


Class:Troop(只显示Troop,其他类同)


public class Troop extends Card {


    private int dammage;

    private int dammagePerSecond;

    private int hitpoints;

    private double range;

    private double hitSpeed;

    private String speed;

    private int deathDammage;

    private int count;


    public Troop(String name, int elixer, int dammage, int dammagePerSecond, int hitpoints, double range, double hitSpeed, String speed, int deathDammage, int count) {

        super(name, elixer);

        this.dammage = dammage;

        this.dammagePerSecond = dammagePerSecond;

        this.hitpoints = hitpoints;

        this.range = range;

        this.hitSpeed = hitSpeed;

        this.speed = speed;

        this.deathDammage = deathDammage;

        this.count = count;

    }

}


德玛西亚99
浏览 113回答 2
2回答

长风秋雁

您的问题可能出现了,因为卡片不应该是 CardPool 类型。以“PEKKA”为例。它是一个 Troop,它是 Card 的子类,与 CardPool 无关(因此转换为 CardPool 是无稽之谈)。因此,您的 CardPool 可以作为一个基本类,为所有不同的卡片提供预定义的、可静态访问的公共 Card 对象。然后对于每个 Arena,您可以只拥有一个 ArrayList,它就像您现在一样充当您的 cardList。作为另一个建议,向 Arena 添加一个 'addCard(Card c)' 方法比每次都必须使用 'getCardList().add()' 对你来说更好。

蓝山帝景

你正在转换为CardPoolnot Card。你将不得不Card实施CardPoolpublic class Card implements CardPool或Troop本身public class Troop extends Card implements CardPool能够将其转换为CardPool.
随时随地看视频慕课网APP

相关分类

Java
我要回答