C语言编写的五子棋源代码.txt资料文档下载

上传人:b****1 文档编号:13160660 上传时间:2022-10-07 格式:TXT 页数:11 大小:13.40KB
下载 相关 举报
C语言编写的五子棋源代码.txt资料文档下载_第1页
第1页 / 共11页
C语言编写的五子棋源代码.txt资料文档下载_第2页
第2页 / 共11页
C语言编写的五子棋源代码.txt资料文档下载_第3页
第3页 / 共11页
C语言编写的五子棋源代码.txt资料文档下载_第4页
第4页 / 共11页
C语言编写的五子棋源代码.txt资料文档下载_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

C语言编写的五子棋源代码.txt资料文档下载

《C语言编写的五子棋源代码.txt资料文档下载》由会员分享,可在线阅读,更多相关《C语言编写的五子棋源代码.txt资料文档下载(11页珍藏版)》请在冰豆网上搜索。

C语言编写的五子棋源代码.txt资料文档下载

g_ScmGame2.iFlag=MAN;

for(i=0;

i<

ORDEX*ORDEX;

++i)

*((int*)qipan+i)=SPA;

}

voidmain()

chark;

do{

InitGame();

start();

printf("

��Ҫ����һ����?

����y��n��"

);

getchar();

scanf("

%c"

&

k);

while(k!

='

y'

&

k!

n'

){printf("

�������,����������\n"

}

system("

cls"

}while(k=='

printf("

ллʹ��!

\n"

voidMakePiece(ScmPiece*pScmPiece,intiGameFlag){

if(iGameFlag)

{

�����ӣ�"

while(scanf("

%d%d"

&

pScmPiece->

iX,&

iY))

{

if((pScmPiece->

iX<

0||pScmPiece->

iX>

ORDEX-1)||(pScmPiece->

iY<

iY>

ORDEX-1))

printf("

�������!

���������룺"

elseif(qipan[pScmPiece->

iX][pScmPiece->

iY])

���������!

elsebreak;

}

}

qipan[pScmPiece->

iY]=pScmPiece->

iFlag;

--g_iPieceLen;

system("

draw();

if(iGameFlag==0)

��������%d%d\n"

pScmPiece->

iX,pScmPiece->

iY);

voidstart()

intchoice;

//ScmPieceScmGameTemp1,ScmGameTemp2;

/*a1b1���������������c1d1���������������*/

\t�X�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�[\n"

\t�U�U\n"

\t�U��ӭʹ���������ս����ף����������ս�޼����U\n"

printf("

\t�U._______________________.�U\n"

\t�U|_____________________|�U\n"

\t�U|II|�U\n"

\t�U|I������I|�U\n"

printf("

\t�U|I___________________I|�U\n"

\t�U!

_______________________!

�U\n"

\t�U._[__________]_.�U\n"

\t�U.___|_______________|___.�U\n"

\t�U|:

:

____|�U\n"

\t�U|~~~~[CD-ROM]|�U\n"

\t�U!

_____________________!

�U\n"

\t�U����Ϫ�������ף������������������U\n"

\t�U��������׷��������������ɽ�ȡ��U\n"

\t�U������Ͽ��ˮ����������������ᰡ��U\n"

\t�U�������������ǣ�б�������������U\n"

\t�U��ʮ������������ֱָ����б���ǡ��U\n"

\t�U1.�˻���ս2.���˶�ս�U\n"

\t�^�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�T�a\n"

\t\t\t������1��2��"

while(scanf("

%d"

choice),choice!

=1&

choice!

=2)

printf("

����������������룺"

);

if(choice==1)

{/*�˻�ģʽ*/

\t\t\t��ӭʹ���������˻���ս��\n\t\t�������������꣨��136���м��Կո�ָ��\n\n\n"

draw();

�����밴1�������밴2��"

printf("

if(choice==2)

MakePiece(&

g_ScmGame2,0);

choice=1;

else

��ӭʹ�����������˶�ս����������������(��136)������������1515�� \n\n\n"

while(g_iPieceLen)

MakePiece(&

g_ScmGame1,1);

if(Victory(&

g_ScmGame1))

printf("

��������Ķ��Ǹ���!

!

return;

}/*���Ӯ*/

if(choice==1)

AI(&

g_ScmGame2.iY,&

g_ScmGame2.iX);

if(Victory(&

g_ScmGame2))

{/*����Ӯ*/

intiChoice;

printf("

Ҫ������������y��n��"

STARTFLAGE:

setbuf(stdin,NULL);

scanf("

iChoice);

switch((char)iChoice){

case'

Y'

g_iPieceLen+=2;

qipan[g_ScmGame2.iX][g_ScmGame2.iY]=SPA;

qipan[g_ScmGame1.iX][g_ScmGame1.iY]=SPA;

system("

draw();

break;

N'

printf("

�²

������Ժ��������벻Ҫ����!

return;

default:

printf("

gotoSTARTFLAGE;

}

}

else

g_ScmGame2,1);

{

return;

�;�\n"

voiddraw()/*������*/

inti,j;

charp[15][15][4];

for(j=0;

j<

15;

j++)

for(i=0;

i<

i++){

if(qipan[j][i]==SPA)strcpy(p[j][i],"

\0"

if(qipan[j][i]==MAN)strcpy(p[j][i],"

��\0"

if(qipan[j][i]==COM)strcpy(p[j][i],"

01234567891011121314\n"

����������������������������������\n"

for(i=0,j=0;

14;

i++,j++){

%2d��%s��%s��%s��%s��%s��%s��%s��%s��%s��%s��%s��%s��%s��%s��%s��%d\n"

j,p[i][0],p[i][1],p[i][2],p[i][3],p[i][4],p[i][5],p[i][6],p[i][7],p[i][8],p[i][9],p[i][10],p[i][11],p[i][12],p[i][13],p[i][14],j);

�����੤�੤�੤�੤�੤�੤�੤�੤�੤�੤�੤�੤�੤�੤��\n"

14��%s��%s��%s��%s��%s��%s��%s��%s��%s��%s��%s��%s��%s��%s��%s��0\n"

p[14][0],p[14][1],p[14][2],p[14][3],p[14][4],p[14][5],p[14][6],p[14][7],p[14][8],p[14][9],p[14][10],p[14][11],p[14][12],p[14][13],p[14][14]);

�����ة��ة��ة��ة��ة��ة��ة��ة��ة��ة��ة��ة��ة��ة���\n"

staticintDirectionValue(int*piX,int*piY,intiDirection){

switch(iDirection){

case0:

--*piX;

break;

case4:

++*piX;

case1:

--*piY;

case5:

++*piY;

case2:

--*piY;

case6:

++*piY;

case3:

case7:

if((*piX>

=0&

*piX<

=ORDEX-1)&

(*piY>

*piY<

=ORDEX-1))

return1;

elsereturn0;

staticintSubVictory(ScmPiece*pScmPiece,intiDirection){

intiX=pScmPiece->

iX;

intiY=pScmPiece->

iY;

intiPieceCount=1;

while(DirectionValue(&

iY,iDirection)&

qipan[iX][iY]==pScmPiece->

iFlag)

++iPieceCount;

iX=pScmPiece->

iY=pScmPiece->

iY,iDirection+4)&

returniPieceCount;

intVictory(ScmPiece*pScmPiece)/*�ж�ʤ��pqΪ�жϵ����꣬ʤ������1�����򷵻

�0*/

intiDirection=0;

while(iDirection<

4)

if(SubVictory(pScmPiece,iDirection++)>

=5)

return1;

return0;

voidAI(int*p,int*q)/*��������*p*q������������*/

inti,j,k,max=0,I,J;

/*IJΪ�µ

�����*/

i++)

if(qipan[j][i]==SPA){/*�������̣������յ�������ֵ��ȡ����ֵ�����ӡ�*/

k=value(i,j);

if(k>

=max){I=i;

J=j;

max=k;

*p=I;

*q=J;

intvalue(intp,intq)/*����յ�pq�ļ�ֵ��k����*/

intn=1,k=0,k1,k2,K1,K2,X1,Y1,Z1,X2,Y2,Z2,temp;

inta[2][4][4]={40,400,3000,10000,6,10,600,10000,20,120,200,0,6,10,500,0,30,300,2500,5000,2,8,300,8000,26,160,0,0,4,20,300,0};

/*����a�д��漺���ͶԷ���32�����͵�ֵ����0�Է�1��0��1�ջ�2�ճ�3����0-3��0��ʾ1���ӣ�3��ʾ4���ӣ�*/

while(n!

=5){

k1=qixing(n,p,q);

n+=4;

/*k1,k2Ϊ2������������ͱ��*/

k2=qixing(n,p,q);

n-=3;

if(k1>

k2){temp=k1;

k1=k2;

k2=temp;

}/*ʹ���С��Ϊk1,���Ϊk2*/

K1=k1;

K2=k2;

/*K1K2����k1k2�ı��*/

Z1=k1%10;

Z2=k2%10;

k1/=10;

k2/=10;

Y1=k1%10;

Y2=k2%10;

X1=k1%10;

X2=k2%10;

/*XYZ�ֱ��ʾ����0�Է�1��0��1�ջ�2�ճ�3����0-3��0��ʾ1���ӣ�3��ʾ4���ӣ�*/

if(K1==-1){if(K2<

0){k+=0;

continue;

}elsek+=a[X2][Y2][Z2]+5;

};

/*������and����*/

if(K1==-2){if(K2<

}elsek+=a[X2][Y2][Z2]/2;

};

/*�߽������and����*/

if(K1==-3){if(K2<

}elsek+=a[X2][Y2][Z2]/3;

/*�߽�ճ�����and����*/

if(((K1>

-1&

K1<

4)&

((K2>

K2<

4)||(K2>

9&

14)))||((K1>

99&

104)&

104)||(K2>

109&

114)))){

/*�����������Ի�Ի��Ի�Գ������͸�ֵ*/

if(Z1+Z2>

=2){k+=a[X2][Y2][3];

else{k+=a[X2][Y2][Z1+Z2+1];

14)&

(K2>

14))||((K1>

114)&

114))){

/*���强���Գ�Գ������͸�ֵ*/

=2){k+=10000;

else{k+=0;

114)))||((K1>

/*����Ի�����Գ�����Ի�����Գ������͸�ֵ*/

if(Z1==3||Z2==3){k+=10000;

else{k+=a[X2][Y2][Z2]+a[X1][Y1][Z1]/4;

}

else{k+=a[X1][Y1][Z1]+a[X2][Y2][Z2];

}/*�������͵ĸ�ֵ*/

returnk;

intqixing(intn,intp,intq)/*���ؿյ�pq��n�����ϵ����ͺ�nΪ1-8��������˳ʱ�뿪ʼ��*/

intk,m=0;

/*���ͺ�ע��:

����000-003����010-013�Ի�100-103�Գ�110-113���ջ�020-023���ճ�030-033�Կջ�120-123�Կճ�130-133��-1�߽��-2�߽�ճ�-3*/

yiwei(n,&

p,&

q);

if(p<

0||p>

14||q<

0||q>

14)k=-2;

/*�߽������*/

switch(qipan[q][p]){

caseCOM:

m++;

yiwei(n,&

if(p<

14){k=m+9;

returnk;

while(qipan[q][p]==COM){m++;

if(p<

}}

if(qipan[q][p]==SPA)k=m-1;

/*����������*/

elsek=m+9;

/*����������*/

}break;

caseMAN:

14){k=m+109;

while(qipan[q][p]==MAN){m++;

if(qipan[q][p]==SPA)k=m+99;

/*�Է�������*/

elsek=m+109;

/*�Է�������*/

caseSPA:

yiwei(n,&

14){k=-3;

}/*�߽�ճ�����*/

switch(qipan[q][p]){

caseCOM:

m++;

if(p<

14){k=m+29;

while(qipan[q][p]==COM){m++;

if(qipan[q][p]==SPA)k=m+19;

/*�����ջ�����*/

elsek=m+29;

/*�����ճ�����*/

}break;

caseMAN:

14){k=m+129;

while(qipan[q][p]==MAN){m++;

}}

if(qipan[q][p]==SPA)k=m+119;

/*�Է��ջ�����*/

elsek=m+129;

/*�Է��ճ�����*/

caseSPA:

k=-1;

break;

/*������*/

}

}break;

voidyiwei(intn,int*i,int*j)/*��n�����϶�����ij��λnΪ1-8��������˳ʱ�뿪ʼ��*/

switch(n){

*i+=1;

*j+=1;

*i-=1;

*j-=1;

case8:

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

当前位置:首页 > 人文社科 > 广告传媒

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

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