gpt4 book ai didi

java - 如何在Java中对同一个对象进行多次引用

转载 作者:行者123 更新时间:2023-12-01 13:08:50 25 4
gpt4 key购买 nike

我正在实现一个填字游戏后端。

填字游戏是由槽位组成的,又是由单元格组成的。

假设 (3,14) 处的单元格值为“a”我想要 crossword.changeCellValueByCooperative(3,14,"x") 执行 "a"->"x"

假设某个槽位的头单元位于坐标 (3,14)槽头可以通过 (2,across) == Cell(3,14) 来识别因此,当我接下来调用 slot.getCellValueByNumberAndDirection(2,across) 时,它已经从“a”更改为“x”。

另一个方法(对于同一单元格)crossword.getSlot(2,across).getHead也从“a”更改为“x”。

如何使所有三个不同类型的对象(填字游戏、插槽、单元格)都具有由所有类共享/引用的属性(可能具有相同的名称,让我们称之为“内容”)?

最佳答案

有很多方法可以解决这个问题。这是一种方法:

我不太关心“Slot”类。这对线索之间的交叉点没有任何帮助。

当您看填字游戏时,您会看到什么?我看到一 block 空方 block 。有些角落里有很少的数字。我还看到了我知道无法写入的黑色 block 。我看到了“向下”线索列表和“跨”线索列表。

无论我做什么,我都会在那 block 空方 block 上写字。所以我会创建一个名为 Board 的类似网格的类,它允许我在上面书写。某些方 block 中的小数字表示特定单词的索引方式。每个单元格的内容可以是空格、字母或 -1(如果该方 block 不可写)。

您可以选择实现 Square(或 Cell)类。它将包括一个标志,说明实例的写入能力。它可以包含一个数字,表示线索适用的单元格。有更优雅的方法可以做到这一点。实现这个,我们就可以讨论更高级的类层次结构。

Board 类将包含 Cell 实例的 NxN 结构(可能是一个数组)。

另一个类将被称为“线索”之类的名称,它对应于向下或横向的线索列表。 Clues 包括 Clue 实例的列表。

最后,我有一个 Clue 类,其中每个实例都包含一个 ID(例如“15 down”中的 15)以及要显示的线索文本。

我想一旦你初始化了看板,你就拥有了制作一个漂亮的填字游戏程序所需的一切。

关于java - 如何在Java中对同一个对象进行多次引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23049795/

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