云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 中国象棋Delphi版本程序代码

中国象棋Delphi版本程序代码

  • 62 次阅读
  • 3 次下载
  • 2025/7/1 1:03:35

form1.Canvas.Pen.Width:=2;

form1.Canvas.Rectangle(10,10,19*mBit-15,55);//最上方外框

form1.Canvas.Rectangle(11*mBit-30,mBit+15,19*mBit-15,12*mBit+15); end;

procedure TForm1.NewGame1Click(Sender: TObject); var

i,j:integer;

begin

if(FirstPlay<>'')and((GameMode=1)or(GameMode=2))then begin

if(MessageDlg('确定要开始新游戏吗?',mtConfirmation,[mbYes,mbNo],0))=mrYes then

begin

GroupBox1.Visible:=false;//隐藏GroupBox1 Memo1.Lines.Clear;

Memo1.Lines.Add('新游戏开始!');

MemoMaxLine:=Memo1.Lines.Add('由'+FirstPlay+'先走棋!'); //拾子标志为false mPickFlag:=false;

//能走棋标志为false CanDropFlag:=false;

//胜利标志 win:=false;

//初始化走棋一方 WhoPlay:=FirstPlay; if(WhoPlay='红')then

label1.Font.Color:=clred; if(WhoPlay='黑')then

label1.Font.Color:=clblack; label1.Font.Name:='宋体'; label1.Font.Size:=25;

label1.Caption:='红方走棋'; //初始化胜利提示 label4.Caption:='';

//初始化走棋步数 MCSteep:=0;

label3.Caption:='走棋步数:第'+inttostr(MCSteep)+'步';

//初始化棋盘数组 for i:=1 to 10 do for j:=1 to 9 do begin

ChessBoard[i,j]:=0; end;

//(1'车',2'马',3'象',4'士',5'帅',6'炮','7兵',8'車',9'馬',10'相',11'仕',12'将',13'炮',14'卒'); //设置黑方的棋子 ChessBoard[1,1]:=8; ChessBoard[1,2]:=9; ChessBoard[1,3]:=10; ChessBoard[1,4]:=11; ChessBoard[1,5]:=12; ChessBoard[1,6]:=11; ChessBoard[1,7]:=10; ChessBoard[1,8]:=9; ChessBoard[1,9]:=8; ChessBoard[3,2]:=13; ChessBoard[3,8]:=13; ChessBoard[4,1]:=14; ChessBoard[4,3]:=14; ChessBoard[4,5]:=14; ChessBoard[4,7]:=14; ChessBoard[4,9]:=14;

//设置红方的棋子 ChessBoard[10,1]:=1; ChessBoard[10,2]:=2; ChessBoard[10,3]:=3; ChessBoard[10,4]:=4; ChessBoard[10,5]:=5; ChessBoard[10,6]:=4; ChessBoard[10,7]:=3; ChessBoard[10,8]:=2; ChessBoard[10,9]:=1; ChessBoard[8,2]:=6; ChessBoard[8,8]:=6; ChessBoard[7,1]:=7; ChessBoard[7,3]:=7; ChessBoard[7,5]:=7;

ChessBoard[7,7]:=7; ChessBoard[7,9]:=7;

refresh();//更新棋盘 RemHistory();

if(GameMode=2)and(FirstPlay='黑')then //人机对弈模式由黑方先手 begin

FindAGoodMove();

AIChessMove(nBestMove.FormR,nBestMove.FormC,nBestMove.ToR,nBestMove.ToC); if(isMove=true)then begin

RemHistory();//记录棋子移动 WhoPlay:='红';

label1.Font.Color:=clred; refresh();

paintbox1.Canvas.Pen.Width:=2;

paintbox1.Canvas.Pen.Color:=clgreen;

CrossPaint(nBestMove.FormC*mBit,nBestMove.FormR*mBit,2,8);//棋子起走点标记

CrossPaint(nBestMove.ToC*mBit,nBestMove.ToR*mBit,2,8);//棋子落点标记 isMove:=false;

end; end;

end;//if(MessageDlg('确定要开始新游戏吗 end else

MessageDlg('请设置游戏模式!',mtWarning,[mbOk],0); end;

procedure TForm1.CrossPaint(x,y,i,j:integer); //画兵格过程 begin

if x<>mBit then begin

//兵格坐标左上部

paintbox1.Canvas.MoveTo(x-i,y-i);

paintbox1.Canvas.LineTo(x-j,y-i); paintbox1.Canvas.MoveTo(x-i,y-i); paintbox1.Canvas.LineTo(x-i,y-j); //兵格坐标左下部

paintbox1.Canvas.MoveTo(x-i,y+i); paintbox1.Canvas.LineTo(x-j,y+i); paintbox1.Canvas.MoveTo(x-i,y+i); paintbox1.Canvas.LineTo(x-i,y+j); end;

if x<>9*mBit then begin

//兵格坐标右上部

paintbox1.Canvas.MoveTo(x+i,y-i); paintbox1.Canvas.LineTo(x+i,y-j); paintbox1.Canvas.MoveTo(x+i,y-i); paintbox1.Canvas.LineTo(x+j,y-i); //兵格坐标右下部

paintbox1.Canvas.MoveTo(x+i,y+i); paintbox1.Canvas.LineTo(x+j,y+i); paintbox1.Canvas.MoveTo(x+i,y+i); paintbox1.Canvas.LineTo(x+i,y+j); end; end;

procedure TForm1.Eixt1Click(Sender: TObject); begin

if(MessageDlg('确定要退出游戏?',mtConfirmation,[mbYes,mbNo],0))=mrYes then close; end;

procedure TForm1.PaintBox1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var

row,column:integer;//鼠标落点的行,列号 Lcross : real;//鼠标落点到棋盘交叉点的距离 i,j:integer;

begin

搜索更多关于: 中国象棋Delphi版本程序代码 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

form1.Canvas.Pen.Width:=2; form1.Canvas.Rectangle(10,10,19*mBit-15,55);//最上方外框 form1.Canvas.Rectangle(11*mBit-30,mBit+15,19*mBit-15,12*mBit+15); end; procedure TForm1.NewGame1Click(Sender: TObject); var i,j:integer; begin if(FirstPlay'')and((GameMode=1)or(GameMode=2))then begin if(MessageDlg('确定要开始新游戏吗?',mtConfirmation,[mbYes,mbNo],

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com