gpt4 book ai didi

java - 判断set是否存在冲突

转载 作者:行者123 更新时间:2023-12-01 15:28:11 25 4
gpt4 key购买 nike

我有一个包含 5 个条目的 Java HashMap。映射到每个条目的是一个对象,其中包含:

  • x 值
  • y 值
  • 长度
  • 方向(“水平”或“垂直”)

想象一下带有 10 x 10 棋盘的游戏战舰。每个条目中的 x/y 坐标对应于棋盘上船舶的左上角,并且长度和方向对应于从该点开始的船舶长度和方向,正如人们所期望的那样。

我正在尝试想出一种方法来撕裂这 5 艘船,并检查棋盘上是否存在任何“重叠的船”,即冲突。我不知道该怎么做。任何帮助将不胜感激。

最佳答案

一种方法是:

1) 为板上的每个单元格分配一个数字,1-100(或 0-99)。

2) 向 HashMap 中的内容添加一个方法,该方法返回所覆盖的唯一单元 ID 的列表。因此,如果 x == 1、y==1、长度 == 3、方向 == 水平,您将返回代表潜艇所在单元格的三个 1-100 值。

您将能够通过执行类似 rowNumber*10 + columnNumber 的操作来计算第一个唯一 ID。您可能需要根据您是基于 0 还是 1,或者您的范围是否同样基于 0 或 1 来调整它。从那里,如果是水平的,您只需为每个长度单位添加 1。或者,如果您的作品是垂直的,则为每个唯一 ID 添加 10。

3) 现在您可以拥有一个带有静态方法的碰撞检测器类,该类需要两部分。它可以调用您在步骤 2 中创建的方法,获取两个列表,如果有任何重叠,您会在两个列表中找到相同的数字。

我不知道这是否是最好的方法,但这是一种方法。

关于java - 判断set是否存在冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9916220/

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