FireMonkey3D之中国象棋程序(二)制定规则
声明:本程序设计参考象棋巫师源码(开发工具dephi 11,建议用delphi 10.3以上版本)。
上一章我们设计了图形界面,可以开始轮流走棋了。但是,由于没有按中国象棋的规则进行限制,所有的棋子都可以在棋盘上随意走动,这章我们开始制定行棋规则。
2.1、记录局面
在制定规则之前,我们要先考虑把当前局面记录下来,这样棋子移动后才能知道移动后的局面。棋盘是10×9的格子组成,我们就用二维数组来记录局面变化情况,同时用一个一维数组记录每个棋子的位置:
var chessbd:array[0..9,0..8] of Byte; //记录当前棋局,添加到csPieceMove单元的TPieceMove里 pcPos:array[0..31] of TPoint; //记录棋子所在位置,声明在csCommon单元