中国象棋Delphi版本程序代码Word文件下载.docx

上传人:b****4 文档编号:14010559 上传时间:2022-10-16 格式:DOCX 页数:116 大小:37.28KB
下载 相关 举报
中国象棋Delphi版本程序代码Word文件下载.docx_第1页
第1页 / 共116页
中国象棋Delphi版本程序代码Word文件下载.docx_第2页
第2页 / 共116页
中国象棋Delphi版本程序代码Word文件下载.docx_第3页
第3页 / 共116页
中国象棋Delphi版本程序代码Word文件下载.docx_第4页
第4页 / 共116页
中国象棋Delphi版本程序代码Word文件下载.docx_第5页
第5页 / 共116页
点击查看更多>>
下载资源
资源描述

中国象棋Delphi版本程序代码Word文件下载.docx

《中国象棋Delphi版本程序代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《中国象棋Delphi版本程序代码Word文件下载.docx(116页珍藏版)》请在冰豆网上搜索。

中国象棋Delphi版本程序代码Word文件下载.docx

Label2:

Label3:

BitBtn1:

TBitBtn;

BitBtn3:

Label4:

s1:

N1:

N2:

N3:

N4:

N5:

N6:

N7:

N8:

GroupBox1:

TGroupBox;

PaintBox2:

BitBtn2:

BitBtn4:

BitBtn5:

BitBtn6:

GroupBox2:

Memo1:

TMemo;

BitBtn7:

N9:

N10:

N11:

N12:

N13:

RadioGroup1:

TRadioGroup;

RadioGroup2:

procedureFormCreate(Sender:

TObject);

procedurePaintBox1Paint(Sender:

procedureNewGame1Click(Sender:

procedureEixt1Click(Sender:

procedureCrossPaint(x,y,i,j:

integer);

//自定义画兵格过程

procedurePaintBox1MouseDown(Sender:

TObject;

Button:

TMouseButton;

Shift:

TShiftState;

X,Y:

Integer);

procedureFindDrop(NowR,NowC:

//扫描可以走棋的点过程

procedurePaintCMoveDrop();

//画出可走点过程

procedureWhoWin();

//判断输赢过程

procedureIsNextWin();

//判断是否将军

procedureRemHistory();

//走棋记录

procedureRepentChess(n:

procedureFindAGoodMove();

//寻找一个优秀的走法

procedureAddPoint(row,column:

//加入一个相关点

functionEveluate(nSide:

integer):

integer;

//估值函数

functionEveluate1(nSide:

//测试估值函数

functionGetRelatePiece(row,column:

//枚举一个位置上棋子所有相关的点

functionGetBingValue(row,column:

//为兵返回附加值

//创建可能的走法nPly记录扫描的层数,nSide记录到那边走棋0为红方,1为黑方

functionCreatePossibleMove(nPly,nSide:

functionMakeMove(depth,n:

//猜想过程中生产一个新局面

procedureUnMakeMove(depth,n,nChessID:

//猜想过程中根据走法恢复一个棋盘

functionIsGameOver(depth:

//猜想过程中判断给定局面是否结束

functionAddMove(FormR,FormC,ToR,ToC,nPly:

//在nMoveList中插入一个走法

functionNegaMax(depth:

//深度优先搜索负极大技校

functionAlpha_Beta(depth,alpha,beta:

//Alpha-Beta搜索算法

functionChessMoveLaw(NowR,NowC,ToR,ToC,nChessID:

boolean;

//走棋规则函数

functionChessMoveLawPos(NowR,NowC,ToR,ToC,nChessID:

//猜想过程走棋规则函数

functionCanTouch(NowR,NowC,ToR,ToC,nChessID:

//判断能不能到达目标点

functionChessPutLaw(NowR,NowC,ToR,ToC:

//摆起规则函数

functionChessMove(NowR,NowC,ToR,ToC:

//走棋函数

functionAIChessMove(NowR,NowC,ToR,ToC:

//电脑走棋

procedureBitBtn1Click(Sender:

procedureFormPaint(Sender:

procedureBitBtn3Click(Sender:

procedureN3Click(Sender:

procedureN2Click(Sender:

procedureN6Click(Sender:

procedureN7Click(Sender:

procedurePaintBox2Paint(Sender:

procedureN8Click(Sender:

procedurePaintBox2MouseDown(Sender:

procedureBitBtn5Click(Sender:

procedureBitBtn4Click(Sender:

procedureBitBtn2Click(Sender:

procedureBitBtn6Click(Sender:

procedureBitBtn7Click(Sender:

procedureN11Click(Sender:

procedureN12Click(Sender:

procedureN13Click(Sender:

private

{Privatedeclarations}

public

{Publicdeclarations}

end;

var

Form1:

TForm1;

//棋盘格子单位大小

mBit:

//棋子数组:

所有棋子的数值

mChess:

array[1..14]ofstring=

('

车'

'

马'

相'

士'

帅'

炮'

兵'

車'

馬'

象'

仕'

将'

卒'

);

//===============================棋子价值==============================//

//棋子的基础价值

m_BaseValue:

array[1..14]ofinteger=

(500,350,250,250,10000,370,100,500,350,250,250,10000,370,100);

//棋子灵活度基础价值

m_Flexible:

array[1..14]ofinteger=

(6,12,1,1,0,6,15,6,12,1,1,0,6,15);

//每一个位置上的棋子的灵活性即可走步数

m_FlexibleNum:

array[1..10,1..9]ofinteger;

//每一个位置被威胁的信息

m_AttackNum:

//每一个位置被保护的信息

m_GuardNum:

//每一个棋子是总价值

m_ChessValue:

//红兵附加值矩阵

mBing:

array[1..10,1..9]ofinteger=

(0,0,0,0,0,0,0,0,0),

(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)

//黑卒附加值矩阵

mZhuzi:

//===============================棋子

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 职业规划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1