基于C++象棋五子棋.docx

上传人:b****3 文档编号:3686291 上传时间:2022-11-24 格式:DOCX 页数:29 大小:21.18KB
下载 相关 举报
基于C++象棋五子棋.docx_第1页
第1页 / 共29页
基于C++象棋五子棋.docx_第2页
第2页 / 共29页
基于C++象棋五子棋.docx_第3页
第3页 / 共29页
基于C++象棋五子棋.docx_第4页
第4页 / 共29页
基于C++象棋五子棋.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

基于C++象棋五子棋.docx

《基于C++象棋五子棋.docx》由会员分享,可在线阅读,更多相关《基于C++象棋五子棋.docx(29页珍藏版)》请在冰豆网上搜索。

基于C++象棋五子棋.docx

基于C++象棋五子棋

#include"DarkGDK.h"

intqizi[32][24],turn=1,winner=0,num1=0,num2=0,num=0,huiyuannum=1,ii=5,game=0;

floatfufen1=0,fufen2=0,fufen=0,f1,f2;

charhuiyuan1[100],huiyuan2[100],mima1[200],mima2[200],huiyuan[100],mima[200];

intok=0,qigo=0,linshix,linshiy,linshix0,linshiy0,qi[9][10],bmp[33],ownner=0,m=0;

DWORDblack=dbRGB(0,0,0);

DWORDwhite=dbRGB(255,255,255);

DWORDred=dbRGB(255,0,0);

DWORDgreen=dbRGB(0,255,0);

DWORDblue=dbRGB(0,0,255);

voidrestart()

{

dbLoadSound("guitar.wav",1);

dbLoadSound("MagicTree.wav",2);

dbSetImageColorKey(0,255,0);

dbLoadImage("1.bmp",1);

dbLoadImage("2.bmp",2);

dbLoadImage("3.bmp",3);

dbLoadImage("4.bmp",4);

dbLoadImage("5.bmp",5);

dbLoadImage("6.bmp",6);

dbLoadImage("7.bmp",7);

dbLoadImage("11.bmp",11);

dbLoadImage("12.bmp",12);

dbLoadImage("13.bmp",13);

dbLoadImage("14.bmp",14);

dbLoadImage("15.bmp",15);

dbLoadImage("16.bmp",16);

dbLoadImage("17.bmp",17);

dbLoadImage("棋盘.bmp",10);

dbLoadImage("denglu.bmp",9);

inti,j,m=1;

for(i=0;i<9;i++)

for(j=0;j<10;j++)

qi[i][j]=0;

qi[0][0]=1;

qi[1][0]=2;

qi[2][0]=3;

qi[3][0]=4;

qi[4][0]=5;

qi[5][0]=6;

qi[6][0]=7;

qi[7][0]=8;

qi[8][0]=9;

qi[1][2]=10;

qi[7][2]=11;

qi[0][3]=12;

qi[2][3]=13;

qi[4][3]=14;

qi[6][3]=15;

qi[8][3]=16;

qi[0][6]=17;

qi[2][6]=18;

qi[4][6]=19;

qi[6][6]=20;

qi[8][6]=21;

qi[1][7]=22;

qi[7][7]=23;

qi[0][9]=24;

qi[1][9]=25;

qi[2][9]=26;

qi[3][9]=27;

qi[4][9]=28;

qi[5][9]=29;

qi[6][9]=30;

qi[7][9]=31;

qi[8][9]=32;

bmp[0]=0;

bmp[1]=1;

bmp[2]=2;

bmp[3]=3;

bmp[4]=4;

bmp[5]=5;

bmp[6]=4;

bmp[7]=3;

bmp[8]=2;

bmp[9]=1;

bmp[10]=6;

bmp[11]=6;

bmp[12]=7;

bmp[13]=7;

bmp[14]=7;

bmp[15]=7;

bmp[16]=7;

bmp[17]=17;

bmp[18]=17;

bmp[19]=17;

bmp[20]=17;

bmp[21]=17;

bmp[22]=16;

bmp[23]=16;

bmp[24]=11;

bmp[25]=12;

bmp[26]=13;

bmp[27]=14;

bmp[28]=15;

bmp[29]=14;

bmp[30]=13;

bmp[31]=12;

bmp[32]=11;

}

intmax(intx,inty)

{

if(x>y)returnx;

elsereturny;

}

intmin(intx,inty)

{

if(x>y)returny;

elsereturnx;

}

intrule3()/////////////符合规则落子并判断是否吃对方棋子

{

if(ok==3)///////////////////////////黑棋到最后一步

{

intn,m,bx=0,by=0,rx=0,ry=0,bh=0,rh=0;

qi[linshiy][linshix]=qi[linshiy0][linshix0];

qi[linshiy0][linshix0]=0;

ok=0;

if(turn==1)turn=2;

elseturn=1;

for(n=3;n<6;n++)///////////判断帅还在不

for(m=0;m<3;m++)

if(qi[n][m]==5)

{bh=1;bx=m;by=n;break;}

for(n=3;n<6;n++)///////////判断帅还在不

for(m=7;m<10;m++)

if(qi[n][m]==28)

{rh=1;rx=m;ry=n;break;}

if(!

bh){ownner=2;return0;}

if(!

rh){ownner=1;return0;}

if(by==ry)

{

for(n=bx+1;n

if(qi[by][n]){ownner=0;return0;}

ownner=turn;

}

}

return0;

}

intrule2()//////////////////////////选择路线是否符合规则

{

if(ok==2)

{inti,m;

if(qi[linshiy0][linshix0])

switch(bmp[qi[linshiy0][linshix0]])

{

case1:

/////////////////////////////////////黑车

if(linshix==linshix0)////////////////同一列上

if(min(linshiy,linshiy0)+1

for(i=min(linshiy,linshiy0)+1;i

if(qi[i][linshix]){ok=0;return0;}

else{ok=3;return0;}

elseif(min(linshiy,linshiy0)+1==max(linshiy,linshiy0))

{ok=3;return0;}

else{ok=0;return0;}

if(linshiy==linshiy0)////////////////同一列上

if(min(linshix,linshix0)+1

for(i=min(linshix,linshix0)+1;i

if(qi[linshiy][i]){ok=0;return0;}

else{ok=3;return0;}

elseif(min(linshix,linshix0)+1==max(linshix,linshix0))

{ok=3;return0;}

else{ok=0;return0;}

ok=0;return0;

case2:

/////////////////////马

if(linshix==(linshix0-2)&&linshiy==(linshiy0-1))if(!

qi[linshiy0][linshix0-1]){ok=3;return0;}

if(linshix==(linshix0-1)&&linshiy==(linshiy0-2))if(!

qi[linshiy0-1][linshix0-1]){ok=3;return0;}

if(linshix==(linshix0+1)&&linshiy==(linshiy0-2))if(!

qi[linshiy0-1][linshix0-1]){ok=3;return0;}

if(linshix==(linshix0+2)&&linshiy==(linshiy0-1))if(!

qi[linshiy0][linshix0+1]){ok=3;return0;}

if(linshix==(linshix0+2)&&linshiy==(linshiy0+1))if(!

qi[linshiy0][linshix0+1]){ok=3;return0;}

if(linshix==(linshix0+1)&&linshiy==(linshiy0+2))if(!

qi[linshiy0+1][linshix0]){ok=3;return0;}

if(linshix==(linshix0-1)&&linshiy==(linshiy0+2))if(!

qi[linshiy0+2][linshix0-1]){ok=3;return0;}

if(linshix==(linshix0-2)&&linshiy==(linshiy0+1))if(!

qi[linshiy0][linshix0-1]){ok=3;return0;}

ok=0;return0;

case3:

//////////////象

if(turn==1&&linshix<5||turn==2&&linshix>4)

{if(linshix==linshix0+2&&linshiy==linshiy0+2){ok=3;return0;}

if(linshix==linshix0+2&&linshiy==linshiy0-2){ok=3;return0;}

if(linshix==linshix0-2&&linshiy==linshiy0+2){ok=3;return0;}

if(linshix==linshix0-2&&linshiy==linshiy0-2){ok=3;return0;}

}

ok=0;return0;

case4:

///////////////士

if(turn==1&&linshiy>2&&linshiy<6&&linshix<3||turn==2&&linshiy>2&&linshiy<6&&linshix>6)

{

if(linshix==linshix0+1&&linshiy==linshiy0+1){ok=3;return0;}

if(linshix==linshix0+1&&linshiy==linshiy0-1){ok=3;return0;}

if(linshix==linshix0-1&&linshiy==linshiy0+1){ok=3;return0;}

if(linshix==linshix0-1&&linshiy==linshiy0-1){ok=3;return0;}

}

ok=0;return0;

case5:

///////////////将帅

if(turn==1&&linshiy>2&&linshiy<6&&linshix<3||turn==2&&linshiy>2&&linshiy<6&&linshix>6)

{

if(linshix==linshix0&&linshiy==linshiy0+1){ok=3;return0;}

if(linshix==linshix0&&linshiy==linshiy0-1){ok=3;return0;}

if(linshix==linshix0-1&&linshiy==linshiy0){ok=3;return0;}

if(linshix==linshix0+1&&linshiy==linshiy0){ok=3;return0;}

}

ok=0;return0;

case6:

///////////////炮

m=0;

if(linshix==linshix0)////////////////同一列上

{if(min(linshiy,linshiy0)+1

{for(i=min(linshiy,linshiy0)+1;i

if(qi[i][linshix]){m++;}

if(m==0&&qi[linshiy][linshix]==0){ok=3;return0;}

if(m==1&&qi[linshiy][linshix]>16&&turn==1){ok=3;return0;}

if(m==1&&qi[linshiy][linshix]<17&&turn==2){ok=3;return0;}

}

elseif(min(linshiy,linshiy0)+1==max(linshiy,linshiy0))////x|x0

{if(qi[linshiy][linshix]==0){ok=3;return0;}}

}

if(linshiy==linshiy0)////////////////同一行上

{if(min(linshix,linshix0)+1

{for(i=min(linshix,linshix0)+1;i

if(qi[linshiy][i]){m++;}

if(m==0&&qi[linshiy][linshix]==0){ok=3;return0;}

if(m==1&&qi[linshiy][linshix]>16&&turn==1){ok=3;return0;}

if(m==1&&qi[linshiy][linshix]<17&&turn==2){ok=3;return0;}

}

elseif(min(linshix,linshix0)+1==max(linshix,linshix0))////x|x0

{if(qi[linshiy][linshix]==0){ok=3;return0;}}

}

ok=0;return0;

case7:

/////////////兵

if(turn==1&&linshix0<5)

if(linshix==linshix0+1&&linshiy==linshiy0){ok=3;return0;}

if(turn==1&&linshix0>4)

if(linshix==linshix0+1&&linshiy==linshiy0||linshix==linshix0&&linshiy==linshiy0+1||linshix==linshix0&&linshiy==linshiy0-1){ok=3;return0;}

if(turn==2&&linshix0>4)

if(linshix==linshix0-1&&linshiy==linshiy0){ok=3;return0;}

if(turn==2&&linshix0<5)

if(linshix==linshix0-1&&linshiy==linshiy0||linshix==linshix0&&linshiy==linshiy0+1||linshix==linshix0&&linshiy==linshiy0-1){ok=3;return0;}

ok=0;return0;

case11:

///////////////////////////////////////////////////红车

if(linshix==linshix0)////////////////同一列上

if(min(linshiy,linshiy0)+1

for(i=min(linshiy,linshiy0)+1;i

if(qi[i][linshix]){ok=0;return0;}

else{ok=3;return0;}

elseif(min(linshiy,linshiy0)+1==max(linshiy,linshiy0))

{ok=3;return0;}

else{ok=0;return0;}

if(linshiy==linshiy0)////////////////同一列上

if(min(linshix,linshix0)+1

for(i=min(linshix,linshix0)+1;i

if(qi[linshiy][i]){ok=0;return0;}

else{ok=3;return0;}

elseif(min(linshix,linshix0)+1==max(linshix,linshix0))

{ok=3;return0;}

else{ok=0;return0;}

ok=0;return0;

/////////////////////////////

case12:

if(linshix==(linshix0-2)&&linshiy==(linshiy0-1))if(!

qi[linshiy0][linshix0-1]){ok=3;return0;}

if(linshix==(linshix0-1)&&linshiy==(linshiy0-2))if(!

qi[linshiy0-1][linshix0-1]){ok=3;return0;}

if(linshix==(linshix0+1)&&linshiy==(linshiy0-2))if(!

qi[linshiy0-1][linshix0-1]){ok=3;return0;}

if(linshix==(linshix0+2)&&linshiy==(linshiy0-1))if(!

qi[linshiy0][linshix0+1]){ok=3;return0;}

if(linshix==(linshix0+2)&&linshiy==(linshiy0+1))if(!

qi[linshiy0][linshix0+1]){ok=3;return0;}

if(linshix==(linshix0+1)&&linshiy==(linshiy0+2))if(!

qi[linshiy0+1][linshix0]){ok=3;return0;}

if(linshix==(linshix0-1)&&linshiy==(linshiy0+2))if(!

qi[linshiy0+2][linshix0-1]){ok=3;return0;}

if(linshix==(linshix0-2)&&linshiy==(linshiy0+1))if(!

qi[linshiy0][linshix0-1]){ok=3;return0;}

ok=0;return0;

////////////////////

case13:

if(turn==1&&linshix<5||turn==2&&linshix>4)

{if(linshix==linshix0+2&&linshiy==linshiy0+2){ok=3;return0;}

if(linshix==linshix0+2&&linshiy==linshiy0-2

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

当前位置:首页 > 法律文书 > 判决书

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

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