gpt4 book ai didi

java - 棋盘游戏在 Java 中的实现

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:44:00 25 4
gpt4 key购买 nike

首先,我不确定是否允许问这种问题。所以我正在尝试创建一个棋盘游戏,但我一直坚持为 Piece 生成有效 Action 的实现。这是类图的摘录。

Class Diagram

你可以把这个棋盘游戏想象成国际象棋,所以我们需要知道其他棋子的位置,同时生成有效的走法。问题是我不知道如何检查它。我的类图错了吗?还是每次我检查一个方格时都应该在棋盘上检查?我如何在 Java 中做到这一点?感谢您的帮助。

最佳答案

棋子不应该决定它的有效移动是什么,它应该只知道它在哪里以及它如何能够移动。它不对这种逻辑负责。

棋盘应该管理这是否被允许(也就是说,它需要一个棋子返回它可能的移动,然后返回有效的移动)。

Piece 类公开了一个 getPossibleMoves 方法,该方法返回它可以到达的位置列表:

public List<Square> getPossibleMoves(){ // might want to differentiate types of moves

然后,棋盘类有一个 getValidMoves 方法,它获取棋子并返回其有效移动。

public List<Square> getValidMoves(Piece piece) {
return piece.getPossibleMoves().
stream(). // and filter by
filter(move -> isOnValidBoardCoordinate(move)). // can shorten
filter(move -> doesNotIntersectOtherPiece(move)).
filter(move -> otherValidation(move)).
collect(Collectors.toList());
}

关于java - 棋盘游戏在 Java 中的实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29877431/

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