gpt4 book ai didi

java - 对两个相同但具有两种不同功能的对象进行建模的好方法是什么?

转载 作者:行者123 更新时间:2023-12-02 07:27:44 25 4
gpt4 key购买 nike

我正在寻找一种在棋盘游戏中模拟“移动”的好方法。我希望能够询问玩家他们的举动是什么并让他们做出回应,然后能够根据他们的举动在棋盘上执行正确的操作。问题是,有多种类型的移动,每种类型都有自己的数据集。例如,在拼字游戏中,您可以玩一个单词,它应该返回该单词、其位置和方向(或一组带有位置的图 block 或其他内容),但您也可以交换图 block (这将涉及返回您想要的图 block )交换)或通过。

与国际象棋类似,您通常移动一个棋子,这应该返回该棋子的移动及其去向,但您也可以城堡,其中涉及指示两个棋子及其位置,或一方(国王/王后),或者除了棋子/位置之外的一些其他信息。

我假设 Player 返回 Move 对象是最好的方法,但我也愿意接受任何其他建模选择或建议。

谢谢!

最佳答案

根据经验,如果您希望某个事物具有通用类型但不同的行为(此处为“移动”),您需要让该事物实现该行为。因此,您不应该问棋盘如何以不同的方式解释两个不同的棋步,而应该考虑如何让两个不同的棋步在执行其棋步时以不同的方式使用棋盘。

所以:基类(可能应该是接口(interface))是一个Move,它有一个perform()方法,并且两种move有不同的perform()方法实现。

关于java - 对两个相同但具有两种不同功能的对象进行建模的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13314502/

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