如果我正在设计一个简单的国际象棋游戏代码,我已经创建了我的电路板布局,
我想知道我是如何实现碎片(P, p, R, r, N, n, B, b, Q, q, K, k)
(大写字母代表白色碎片,小写是黑色碎片),以便ChessBoard对象更新以将碎片存储在输入的位置?
我应该将这些碎片声明为实例变量吗? 或者我应该在主要声明它们?
就用户输入已经拍摄的位置而言,我完全迷失了如何将其转换为代码。
但是,如果用户的输入超出了电路板范围,我确实会实现显示错误消息的部分代码。
(顺便说一句,这都是在java中)
任何帮助将不胜感激!!提前致谢!如果看到我的一些代码会有所帮助,请告诉我。
答案 0 :(得分:2)
Piece
是一个抽象类(并且该板包含Piece
个对象的网格),Pawn
,Knight
等扩展Piece
。
如果你需要实现en passant,那么你可能需要一个单独的规则引擎,这些部分可以查询它们的合法移动 - 这些部分将是无状态的,并且规则引擎将携带确定是否需要的状态信息棋子可以通过en passant捕获,或者如果由于三次移动重复而实现平局。