用c语言编写一个可以用鼠标控制的五子棋程序

2024-07-16 11:17:20作者:饭克斯

#include

#include

#include

#include

#include

#include

#defineSHURU1

#defineFANGXIANG2

#defineWUXIAO0

#defineTUICHU3

/****************************************************/

staticintii=0,jj=0,wanjia=1;

/****************************************************/

voidhqp(inta[][20],inty);

intanjian(charan);

intpanduan(inta[][20]);

voidpingmu(void);

voidguangbiaoyd(charan);

voidjh(inta[][20]);

/****************************************************/

voidmain()

{

inta[20][20]={0},tuichu=0,ying;

charan;

hqp(a,0);

pingmu();

while(1)

{

ying=panduan(a);

if(ying!=0)

hqp(a,ying);

an=getch();

switch(anjian(an))

{

caseTUICHU:clrscr();

tuichu=1;

break;

caseFANGXIANG:guangbiaoyd(an);

break;

caseSHURU:switch(ying)

{

case1:hqp(a,1);tuichu=1;break;

case2:hqp(a,2);tuichu=1;break;

case0:jh(a);break;

}

break;

caseWUXIAO:break;

}

hqp(a,0);

pingmu();

if(tuichu==1)

break;

}

}

/****************************************************/

voidhqp(inta[][20],inty)

{

inti,j;

clrscr();

if(y!=0)

{

textcolor(RED);

printf(WANJIA%dSHENGLI!!!!!\n,y);

}

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

{

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

{

switch(a[i][j])

{

case1:textcolor(YELLOW);

putch('X');

break;

case2:textcolor(BLUE);

putch('0');

break;

case0:textcolor(GREEN);

if(j==0)

{

if(i==0)

{

putch(0xda);

break;

}

if(i==19)

{

putch(0xc0);

break;

}

putch(0xc3);

break;

}

if(j==19)

{

if(i==0)

{

putch(0xbf);

break;

}

if(i==19)

{

putch(0xd9);

break;

}

putch(0xb4);

break;

}

if(i==0&&j!=0&&j!=19)

{

putch(0xc2);

break;

}

if(i==19&&j!=0&&j!=19)

{

putch(0xc1);

break;

}

putch(0xc5);

break;

}

}

printf(\n);

}

}

/*****************************************************************/

intanjian(charan)

{

if(an==32||an==13)

return(SHURU);

else

if(an=='a'||an=='w'||an=='s'||an=='d'||

an=='j'||an=='i'||an=='k'||an=='l')

return(FANGXIANG);

else

if(an==27)

return(TUICHU);

else

return(WUXIAO);

}

/******************************************************************/

intpanduan(inta[][20])

{

inti,j;

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

{

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

{

if(a[i][j]==1&&a[i][j+1]==1&&a[i][j+2]==1&&a[i][j+3]==1&&a[i][j+4]==1)

return(1);

else

if(a[i][j]==2&&a[i][j+1]==2&&a[i][j+2]==2&&a[i][j+3]==2&&a[i][j+4]==2)

return(2);

}

}

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

{

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

{

if(a[i][j]==1&&a[i+1][j]==1&&a[i+2][j]==1&&a[i+3][j]==1&&a[i+4][j]==1)

return(1);

else

if(a[i][j]==2&&a[i+1][j]==2&&a[i+2][j]==2&&a[i+3][j]==2&&a[i+4][j]==2)

return(2);

}

}

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

{

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

{

if(a[i][j]==1&&a[i+1][j+1]==1&&a[i+2][j+2]==1&&a[i+3][j+3]==1&&a[i+4][j+4]==1)

return(1);

else

if(a[i][j]==2&&a[i+1][j+1]==2&&a[i+2][j+2]==2&&a[i+3][j+3]==2&&a[i+4][j+4]==2)

return(2);

}

}

for(i=4;i<20;i++)

{

for(j=4;j<20;j++)

{

if(a[i][j]==1&&a[i-1][j-1]==1&&a[i-2][j-2]==1&&a[i-3][j-3]==1&&a[i-4][j-4]==1)

return(1);

else

if(a[i][j]==2&&a[i-1][j-1]==2&&a[i-2][j-2]==2&&a[i-3][j-3]==2&&a[i-4][j-4]==2)

return(2);

}

}

return(0);

}

/**************************************************************************/

voidpingmu(void)

{

inti,j;

char*Msg[]=

{

WanJia1anjian:,

shang:w,

xia:s,

zuo:a,

you:d,

fangzi:space,

,

WanJia2anjian:,

shang:i,

xia:k,

zuo:j,

you:l,

fangzi:ENTER,

tuichu:,

ESC\n,

NULL,

};

i=0;

textcolor(RED);

while(Msg[i]!=NULL)

{

gotoxy(25,3+i);

cputs(Msg[i]);

i++;

}

gotoxy(25,20);

printf(\nqingwanjia%dchuru:,wanjia);

gotoxy(jj+1,ii+1);

}

/**********************************************************************/

voidguangbiaoyd(charan)

{

if(wanjia==1)

{

switch(an)

{

case'a':jj--;break;

case'd':jj++;break;

case'w':ii--;break;

case's':ii++;break;

}

}

else

{

switch(an)

{

case'j':jj--;break;

case'l':jj++;break;

case'i':ii--;break;

case'k':ii++;break;

}

}

if(ii<0)

ii++;

if(ii>19)

ii--;

if(jj<0)

jj++;

if(jj>19)

jj--;

gotoxy(ii+1,jj+1);

}

/***********************************************************************/

voidjh(inta[][20])

{

intk=0;

if(wanjia==1&&a[ii][jj]==0&&k==0)

{

a[ii][jj]=1;

wanjia=2;

k=1;

}

else

{

if(a[ii][jj]==0&&k==0)

{

a[ii][jj]=2;

wanjia=1;

}

}

}

/***********************************************************************/

展开全文

热门推荐

相关攻略

猜你喜欢