java如何用三项描述一个状态
我正在用Java创建棋盘游戏Tic Tac Toe
一个单元格将有三种状态:空、X或O
用Java表示这一点的最佳实践是什么?我应该创建自己的Cell类,还是只使用整数(0/1/2)来表示这三种状态?如果它有两个状态,那么我可以用布尔值来表示这两个状态,是否有一个类似的已经定义了三个状态的类
你可以在下面搜索框中键入要查询的问题!
我正在用Java创建棋盘游戏Tic Tac Toe
一个单元格将有三种状态:空、X或O
用Java表示这一点的最佳实践是什么?我应该创建自己的Cell类,还是只使用整数(0/1/2)来表示这三种状态?如果它有两个状态,那么我可以用布尔值来表示这两个状态,是否有一个类似的已经定义了三个状态的类
# 1 楼答案
可以使用包含三个值的枚举,如:
然后像这样使用它:
# 2 楼答案
有多种方法,但在这种情况下,我更喜欢使用枚举来表示您的状态
然后你的细胞类看起来像这样
# 3 楼答案
我会为此使用枚举:
然后在代码中:
我刚刚将董事会结构定义为
CellState[][]
作为示例,但这可以是任何形式# 4 楼答案
在使用OO语言时,最重要的一点是对象对行为进行建模,并在可能的情况下包含实现行为所需的数据。行为是物体所做的,而不是对它们所做的
因此,除非有理由在你没有说明的要求中加入,否则细胞本身没有任何行为,它只是一个玩家标记的地方
所以你可以有一个简单的标记数组,两个玩家都会更新,使用一个带有三个值的枚举,或者你可以让每个玩家更新他们自己的标记数据,在这种情况下,每个玩家都会有一个布尔数组或一个短位掩码来指示他们的行动。在后一种情况下,每个玩家只需更改自己的“goes”状态,就可以对自己的获胜条件进行测试,而不是共享状态——唯一的共享是他们必须询问另一个玩家所选的单元格是否有效。这取决于你希望你的设计有多严格,这是否是“最佳实践”——对于这样一个简单的问题,你可以用COBOL编写,用户也会很高兴
# 5 楼答案
我会使用枚举:
以及一个单元格类,其字段类型为
CellState