tBox2Paint(Sender: TObject); procedure N8Click(Sender: TObject); procedure PaintBox2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure BitBtn5Click(Sender: TObject); procedure BitBtn4Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure BitBtn6Click(Sender: TObject); procedure BitBtn7Click(Sender: TObject); procedure N11Click(Sender: TObject); procedure N12Click(Sender: TObject); procedure N13Click(Sender: TObject);
private { Private declarations } public { Public declarations } end;
var Form1: TForm1; //棋盘格子单位大小 mBit:integer; //棋子数组:所有棋子的数值 mChess: array[1..14] of string = ('车','马','相','士','帅','炮','兵','車','馬','象','仕','将','炮','卒');
//===============================棋子价值==============================// //棋子的基础价值 m_BaseValue: array[1..14] of integer= (500,350,250,250,10000,370,100,500,350,250,250,10000,370,100); //棋子灵活度基础价值 m_Flexible:array[1..14] of integer= (6,12,1,1,0,6,15,6,12,1,1,0,6,15); //每一个位置上的棋子的灵活性 即可走步数 m_FlexibleNum:array[1..10,1..9]of integer; //每一个位置被威胁的信息 m_AttackNum:array[1..10,1..9]of integer; //每一个位置被保护的信息 m_GuardNum:array[1..10,1..9]of integer;
//每一个棋子是总价值 m_ChessValue:array[1..10,1..9]of integer; //红兵附加值矩阵 mBing:array[1..10,1..9]of integer= ( (0,0,0,0,0,0,0,0,0), (90,90,110,120,120,120,110,90,90), (90,90,110,120,120,120,110,90,90), (70,90,110,110,110,110,110,90,70), (70,70,70,70,70,70,70,70,70), (0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0) ); //黑卒附加值矩阵 mZhuzi:array[1..10,1..9]of integer= ( (0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0), (0,0,0,0,0,0,0,0,0),
(0,0,0,0,0,0,0,0,0), (70,70,70,70,70,70,70,70,70), (70,90,110,110,110,110,110,90,70), (90,90,110,120,120,120,110,90,90), (90,90,110,120,120,120,110,90,90), (0,0,0,0,0,0,0,0,0) ); //===============================棋子价值==============================// //棋盘两边的数表 NumWord1:array[1..9] of string = ('1','2','3','4','5','6','7','8','9'); NumWord2:array[1..10] of string= ('一','二','三','四','五','六','七','八','九','十'); NumWord3:array[1..14] of integer=//摆子时盒子里剩余的棋子数量 (2,2,2,2,1,2,5,2,2,2,2,1,2,5); //棋盘数组:记录什么位置有什么棋子 有子地方为 mChess 里面的数值,无子为 0 ChessBoard: array[1..10,1..9] of integer; //电脑猜想时棋盘数组: 记录什么位置有什么棋子 有子地方为 mCh
ess 里面的数值, 无子为 0 nPosition: array[1..10,1..9] of integer; //自定义棋盘盒子数组 ChessBox:array[1..2,1..7]of integer; //定义
导航点数组 能走的坐标点存在数组中值为 1,不能走为 0 CMoveDrop:array[1..10,1..9] of integer;
//棋盘 1 拾子标志(True 表示已经拾取一个棋子) mPickFlag : boolean; //棋盘 2 拾子标志(True 表示已经拾取一个棋子) mPickFlag2:boolean; //在 paintbox1 拾起棋子的值 mPickChess: integer; //在 paintbox2 拾起的棋子值 mPickChess2:integer;
//拾起棋子的行号 mPickRow : integer; //拾起棋子的列号 mPickColumn :integer; //最大价值棋子的行列 MVCRow,MVCColumn:integer; //走棋规则,允许落子标志 CanDropFlag : boolean;
/