首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

小型五子棋程序出现fatal error C1004: unexpected end of file found如何解决

2013-07-08 
小型五子棋程序出现fatal error C1004: unexpected end of file found怎么解决#includestdio.h#include

小型五子棋程序出现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,两边代码几乎都一样的,就不能想办法整合起来?

热点排行