在 C++ 上的国际象棋控制台程序中实现 castling [关闭]

问题描述 投票:0回答:1

目前我正在开发一款 PvP 国际象棋主机游戏。我制作了一个 ChessPiece 类,每个棋子都作为父母扩展了这个类。 ex) Rook 类 public ChessPiece

而且这个棋子中的一些具有独特的事件触发功能,在每个玩家移动后立即使用。例如,类 Pawn 有一个函数,告诉它是否可以提升。(bool isReachTheEnd())

当然还有其他类,例如 Chessboard 类,它是一个包含 ChessPiece 的 8x8 指针数组的组合,最后一个名为 ChessConsole 的类具有 Chessboard 类。

所以我想知道我应该如何实施易位事件?在面向对象的编程中,您永远不必知道实例和值的类型。 那么我应该在哪个层次结构上处理转换?或者我应该创建另一个完整的虚拟类,它是一个 castling 的接口?

请大家帮帮我

我试图在 ChessConsole 类上实现 castling,它有 bool triggerCastling()。这个函数决定哪一边可以转换,参考 ChessBoard 的实例。

有什么办法可以用面向对象的编程风格来处理这个问题吗?

c++ class object abstract chess
1个回答
-1
投票

我是 Java 的新手,但我认为您应该为棋子和城堡棋子创建接口,并从类中创建棋子作为这些接口的实现,这样更有意义。

对不起,如果这不是您要找的

© www.soinside.com 2019 - 2024. All rights reserved.