井字棋游戏源代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
井字棋C语言源代码#include
#include
#include
#include
#include
#include
#define ENTER 0x1c0d
#define esc 0x11b
#define up 0x4800
#define down 0x5000
#define left 0x4b00
#define right 0x4d00
int i,j,x1,y1,v,n,m,key,d,e,p,q,h,o,x,y,k;
int a[3][3]={0,0,0,0,0,0,0,0,0};
int score[3][3]={0,0,0,0,0,0,0,0,0};
char s [30];
int main()
{
void drawone();
void drawtwo();
void drawthree();
void drawfour();
void drawfive();
void drawsix();
void xianka();
int renzouqi();
int xuanze();
int py( int a[][3]);
int jisuanji();
int xuanzeyouxi();
int bioskey(int cmd);
xianka();
drawone();
if((key=bioskey(0))==ENTER)
drawtwo();
key=bioskey(0);
if(key==ENTER)
drawfour();
v=1;
while(v==1){
drawthree();
n=xuanze();
x1=220; y1=230;
circle(220,230,20);
o=pan_y(a);
while(o==2) {
if(n==1)
n=renzouqi();
if(n==-1)
n=jisuanji();
o=pan_y(a);
}
drawsix();
getch();
drawfive();
v=xuanzeyouxi();
}
closegraph();
}
/*显卡驱动*/
void xianka(){
int graphdriver,graphmode;
int driver=DETECT,mode;
initgraph(&driver,&mode,"");
graphdriver=DETECT;
initgraph(&graphdriver,&graphmode,""); }
/*定义判赢函数*/
int pan_y(int a[][3]){
int n,b,c,i,j,k=2;
for(i=0;i<3;i++){
n=a[i][0]; b=a[i][1]; c=a[i][2];
if(n+b+c==3) k=1;
if(n+b+c==-3) k=-1;
}
for(j=0;j<3;j++){
n=a[0][j];b=a[1][j];c=a[2][j];
if(n+b+c==3) k=1;
if(n+b+c==-3) k=-1;
}
n=a[0][0]; b=a[1][1]; c=a[2][2];
if(n+b+c==3) k=1;
if(n+b+c==-3) k=-1;
n=a[0][2]; b=a[1][1]; c=a[2][0];
if(n+b+c==3) k=1;
if(n+b+c==-3) k=-1;
if(a[0][0]!=0&&a[0][1]!=0&&a[0][2]!=0&&a[1][0]!=0&&a[1][1]!=0&&a[1][2]!=0&&a[ 2][0]!=0&&a[2][1]!=0&&a[2][2]!=0)
k=0;
return k;
}
/*选择哪一方先下*/
int xuanze(){
key=bioskey(0);
n=-1;
while(key!=ENTER){
if(key==up){
setfillstyle(1,3);
floodfill(471,150,4);
setfillstyle(1,14);
floodfill(471,200,4);
n=-1; }
if(key==down){
setfillstyle(1,14);
floodfill(471,150,4);
setfillstyle(1,3);
floodfill(550,200,4);
n=1; }
key=bioskey(0);
}
return n;
}
/*界面1*/
void drawone() {
for(i=1;i<6;i++){
setcolor(i);
settextstyle(0,HORIZ_DIR,i);
outtextxy(250-43*i,80*i,"Welcome To Y ou");}
setcolor(10);
settextstyle(0,VERT_DIR,2);
outtextxy(20,80,"*** How Do You Do ***");
settextstyle(0,VERT_DIR,2);
outtextxy(620,80,"*** How Do You Do ***");
setcolor(13);
line(20,0,20,479);