小型五子棋程序出现fatal error C1004: unexpected end of file found怎么解决
#include<stdio.h>
#include<graphics.h>
#include<conio.h>
#include<stdlib.h>
#include<windows.h>
void printpage();
void MainFace();
void mouse();
int Game_Over1 (int a[690][690],int chess_symbol);
int Game_Over2 (int a[690][690],int chess_symbol);
int Game_Over3 (int a[690][690],int chess_symbol);
#define N 690
void main()
{
printpage();
MainFace();
mouse();
}
void printpage()
{
char select;
printf("\t\t\t欢迎进入五子棋世界\n");
printf("游戏规则:\n");
printf("1、玩家分别持黑棋和白棋\n");
printf("2、玩家轮流下棋,单击鼠标左键落子\n");
printf("3、棋子落在两线交叉处\n");
printf("4、允许玩家悔棋一步\n");
printf("5、三局两胜\n");
printf("6、是否遵守规则并开局(y/n)\n");
scanf("%c",&select);
fflush(stdin);
if(select=='y'||select=='Y')
{
MainFace();
}
if(select=='n'||select=='N')
{
exit(0);
}
else
{
printf("非法输入,只能接受(Y,y,N,n)\n1秒后继续选择");
Sleep(1000);
system("cls");
printpage();
}
}
void MainFace()
{
int x;
initgraph(690,690);
setbkcolor(LIGHTGRAY);
cleardevice();
setcolor(RED);
for(x=0;x<=690;x+=30)
{
line(x,0,x,690);
line(0,x,690,x);
}
}
int Game_Over1 (int a[690][690],int chess_symbol)
{
int i,j,k,l,r;
for(i=0;i<N;i++)
for(k=0;k<N-4;k++)
{
l=r=0;
for(j=k;j<k+5;j++)
{
if(a[i][j]==chess_symbol)
l++;
if(a[j][i]==chess_symbol)
r++;
}
if(l==5||r==5)
return 1;
}
return 0;
}
int Game_Over2 (int a[690][690],int chess_symbol)
{
int i,j,k,m,LeftDown,RightUp;
for(m=0;m<N-4;m++)
for(k=0;k<N-4;k++)
{
RightUp=LeftDown=0;
for(i=k,j=k+m;i<k+5;i++,j++)
{
if(a[i][j]==chess_symbol)
RightUp++;
if(a[j][i]==chess_symbol)
LeftDown++;
}
if(RightUp==5||LeftDown==5)
return 1;
}
return 0;
}
int Game_Over3 (int a[690][690],int chess_symbol)
{
int i,j,k,m,LeftUp,RightDown;
for(m=N-1;m>=4;m--)
for(k=0;k<m+1-4;k++)
{
LeftUp=RightDown=0;
for(i=k,j=m-k;i<k+5;i++,j--)
{
if(a[i][j]==chess_symbol)
LeftUp++;
if(a[N-1-j][N-1-i]==chess_symbol)
RightDown++;
}
if(RightDown==5||LeftUp==5)
return 1;
}
return 0;
}
void mouse()
{
int x,y ;
int n=1 ;
int i,j ;
int chess[N][N]={0};
int v[2]={0};
char ch;
MOUSEMSG m;
while(true)
{
m=GetMouseMsg();
if(m.uMsg==WM_LBUTTONDOWN)
{
x=m.x%30 ;
if(x<=15)m.x=m.x-x ;
else m.x=m.x+(30-x);
y=m.y%30 ;
if(y<=15)m.y=m.y-y ;
else m.y=m.y+(30-y);
i=m.x/30 ;
j=m.y/30 ;
if(chess[i][j]!=0)continue ;
if(n==1)
{
setcolor(WHITE);
setfillcolor(WHITE);
fillcircle(m.x,m.y,6);
chess[i][j]=1 ;
if(Game_Over1(chess,1)==1||Game_Over2(chess,1)==1||Game_Over3(chess,1)==1)
{
setcolor(BLACK);
outtextxy(200,200,"此局白子获胜");
v[0]++;
if(v[0]==2)
{
outtextxy(200,300,"三局两胜,白子胜两局,白子胜出");
break ;
}
outtextxy(250,250,"是否继续下棋:YorN");
ch=getch();
if(ch=='N')break ;
else
{
for(i=0;i<N;i++)
for(j=0;j<N;j++)
chess[i][j]=0 ;
setbkcolor(LIGHTGRAY);
cleardevice();
setcolor(RED);
for(x=0;x<=690;x+=30)
{
line(x,0,x,690);
line(0,x,690,x);
}
}
}
n=2 ;
}
else
{
chess[i][j]=2 ;
setcolor(BLACK);
setfillcolor(BLACK);
fillcircle(m.x,m.y,6);
if(Game_Over1(chess,2)==1||Game_Over2(chess,2)==1||Game_Over3(chess,2)==1)
{
setcolor(BLACK);
outtextxy(200,200,"此局黑子胜利");
v[1]++;
if(v[1]=2)
{
outtextxy(200,200,"三局两胜,黑子胜两局,黑子胜出");
break ;
}
outtextxy(250,250, "是否继续下棋:Y or N");
ch=getch();
if(ch=='N')break ;
else
{
for(i=0;i<N;i++)
for(j=0;j<N;j++)
chess[i][j]=0 ;
setbkcolor(LIGHTGRAY);
cleardevice();
setcolor(RED);
for(x=0;x<=690;x+=30)
{
line(x,0,x,690);
line(0,x,690,x);
}
}
n=1;
}
}
if(m.uMsg==WM_RBUTTONUP)break;
}
}
c/c++ 五子棋
[解决办法]
这个程序无意义:
#include<stdio.h>
#include<graphics.h>
#include<conio.h>
#include<stdlib.h>
#include<windows.h>
graphics.h/conio.h是DOS下才找到的头文件,而windows.h是WINDOWS下的头文件。
[解决办法]
出现这种错误,应该是 大括号 不匹配. 仔细找找.
[解决办法]
unexpected end of file found一般是少大括号
代码格式整整好吧,太乱了,缩进乱七八糟的也就难怪会少大括号了
[解决办法]
偶遇到类似问题都是用
“每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。”
的方法解决的。
[解决办法]
http://www.easyx.cn
[解决办法]
要想在Windows环境下稳定运行tc.exe
建一个批处理tc.bat,内容为下面两行,放在tc.exe同目录下,再将tc.bat发送到桌面快捷方式:
del tc*.swp >NUL
start command /c tc.exe
如果想在IDE里面使用鼠标,还应将快捷方式属性中的快速编辑模式关掉。
[解决办法]
mouse函数太长了,好好整理下比较看得清,最后几个大括号少了一个,猜测是在n=1前面,具体你自己看吧
那个超长的if-else,两边代码几乎都一样的,就不能想办法整合起来?