资源描述:
《19、五子棋程序纯C语言版》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、五子棋程序纯C语言版//以前发的代码里因为有C++的一点点代码,现在我把那C++的代码改掉。重发出来。//但是这些代码由于编译器的原因,在TC下仍无法运行。请使用VC。#include#include#include#includeintChessData[15][15]={0};intGuangbiaoData[2]={8,8};intChessStepData[255][2]={0};voidgotoxy(intx,inty)//gotoxy在TC中是在一个系统自带
2、的函数,但是在VC中没有这个函数,所以在网上找到了这个函数以实现同样的功能。//只有这一个函数是网上找的,别的全部我自己写的。{COORDc;c.X=x-1;c.Y=y-1;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);}voidGotoChess(intx,inty){x=3*x-2;y=2*y-1;gotoxy(x,y);}voidMove(intMoveData)//输入参数为用户输入的方向(1表示上,2表示下,3表示左,4表示右){switch(MoveData){
3、case1:GuangbiaoData[1]-=1;break;case2:GuangbiaoData[1]+=1;break;case3:GuangbiaoData[0]-=1;break;case4:GuangbiaoData[0]+=1;break;default:printf("Move函数出错");}GotoChess(GuangbiaoData[0],GuangbiaoData[1]);}intGet(int*data)//该函数的功能是用户的按键,并转化为01234567(0表示输入错误,1表示上,2表示下,3表示左,4表示右,5表
4、示落子,6表示悔棋,7表示退出。){//并返回输入的用户号码(共同键返回3),错误则返回0inttemp;B:temp=getch();if(temp==224){temp=getch();switch(temp){case72:*data=1;break;case80:*data=2;break;case75:*data=3;break;case77:*data=4;break;default:gotoB;}return2;}else{switch(temp){case'w':case'W':*data=1;return1;break;case
5、's':case'S':*data=2;return1;break;case'a':case'A':*data=3;return1;break;case'd':case'D':*data=4;return1;break;case13:*data=5;return2;break;case32:*data=5;return1;break;case8:*data=6;break;case27:*data=7;break;default:*data=0;return0;break;}return3;}}voidMoveToEnd(){gotoxy(1,3
6、0);}intLogicBeOut(inta,intb){if(a==-1
7、
8、a==15
9、
10、b==-1
11、
12、b==15)return1;elsereturn0;}intwin(intv){inti=1,j=1,a=0,b=0;while(ChessData[a=GuangbiaoData[0]-i-1][b=GuangbiaoData[1]-i-1]==v*2&&!LogicBeOut(a,b))i++;while(ChessData[a=GuangbiaoData[0]+j-1][b=GuangbiaoData[1]+j-1]==v*2&&!Lo
13、gicBeOut(a,b))j++;if(i+j-1>=5)return1;i=1,j=1,a=0,b=0;while(ChessData[a=GuangbiaoData[0]+i-1][b=GuangbiaoData[1]-i-1]==v*2&&!LogicBeOut(a,b))i++;while(ChessData[a=GuangbiaoData[0]-j-1][b=GuangbiaoData[1]+j-1]==v*2&&!LogicBeOut(a,b))j++;if(i+j-1>=5)return1;i=1,j=1,a=0,b=0;whil
14、e(ChessData[a=GuangbiaoData[0]-i-1][b=GuangbiaoData[1]-1]==v*2&&!Log