- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一款太空入侵者游戏,我需要编写 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
。这样,相关信息将位于受影响的对象实例中,您可以在 spaceShips
或 blinks
列表上使用简单的过滤器来获取其他三个列表/ map 。
请注意你的命名。 “眨眼”不应该是“导弹”或“射击”吗?
关于java - 太空侵略者游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3715502/
我是一名优秀的程序员,十分优秀!