gpt4 book ai didi

java - 太空侵略者游戏

转载 作者:行者123 更新时间:2023-12-02 08:29:49 25 4
gpt4 key购买 nike

我正在编写一款太空入侵者游戏,我需要编写 5 个公共(public)实例变量,其中包含记录有关一次游戏运行的所有信息的集合:

spaceShips 将引用 SpaceShip 列表,按照它们在屏幕上出现的顺序

public List spaceShips;

眨眼是指按照发生顺序引用所有 Blink 实例的列表的镜头

public List blinks;

hitsMap 将引用 map ,其键将是被眨眼击中的宇宙飞船的实例,其值将列出相应的“成功”眨眼实例

????

毫发无损,它将引用未被任何眨眼“击中”的所有 SpaceShip 实例的列表

???

未命中,它将引用未“击中”任何宇宙飞船的所有 Blink 实例的列表

???

然后,我必须向构造函数添加行,以将 HashMap 的新实例分配给命中映射,并将 ArrayList 分配给其他变量,到目前为止我已经

spaceShips = new ArrayList(); blinks = new ArrayList();

任何帮助都会很棒

干杯

最佳答案

在 Java 5 及更高版本中,您可以使用泛型让您的生活稍微变得更加简单。使用这些定义:

public List<SpaceShip> spaceShips = new ArrayList<SpaceShip>();
public List<Blink> blinks ...;
public Map<SpaceShip, List<Blink>> hitsMap = new HashMap<SpaceShip, List<Blink>>();
public List<SpaceShip> unscathed ...;
public List<Blink> misses ...;

要添加点击,请使用以下代码:

public void addHit(SpaceShip ship, Blink blink) {
List<Blink> hits = hitsMap.get(spaceShip);
if(null == hits) {
hits = new ArrayList<Blank>();
hitsMap.put(spaceShip, hits);
}
hits.add(blink);
}

也就是说,我建议使用稍微不同的 API:向 SpaceShip 添加一个“命中”列表和一个 boolean 字段 hit(或者可能是对宇宙飞船的引用)它确实击中了)到Blink。这样,相关信息将位于受影响的对象实例中,您可以在 spaceShipsblinks 列表上使用简单的过滤器来获取其他三个列表/ map 。

请注意你的命名。 “眨眼”不应该是“导弹”或“射击”吗?

关于java - 太空侵略者游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3715502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com