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

求各位大神帮小弟我看下小弟我程序错哪里了。 (迷宫)

2012-06-24 
求各位大神帮我看下我程序错哪里了。 (迷宫)#include cstdlib#include cstdio#include ctimeint row

求各位大神帮我看下我程序错哪里了。 (迷宫)
#include <cstdlib>
#include <cstdio>
#include <ctime>


int row=50;
int col=50;
int SIZEX_MAZE=row*2+1;
int SIZEY_MAZE=col*2+1;
const int CONST_MAZEX=101;
const int CONST_MAZEY=101;

#define RIGHT 2
#define LEFT -2
#define DOWN 1
#define UP -1

int migong[CONST_MAZEX][CONST_MAZEY]={1};


void setmigong();
bool isnewcell(int x,int y);
bool iscovered();
bool islegalarea(int x,int y);

bool isnewcell(int x,int y)
{
if(migong[y*2-1][x*2-1])
return false;
else
return true;
}

bool iscovered()
{
for(int i=1;i<=col;i++)
{
for(int j=1;j<=row;j++)
{
if(isnewcell(i,j)==true)
return false;
}
}
return true;
}


bool islegalarea(int x,int y)
{
if(x>col||x<1||y>row||y<1)
return false;
return true;
}


void setmigong()
{
srand(time(NULL));

  for(int i=0;i<SIZEX_MAZE;i++)
for(int j=0;j<SIZEY_MAZE;j++)
migong[i][j]=1;
int currx,curry;
int temp1;
int dir=0;

migong[1][1]=0;
curry=currx=1;

for(int k=0; ;k++)
{
dir=0;
if(iscovered()==true)
break;

if(currx==1)
{
temp1=rand();
if(curry==1)
{
if(temp1%2==0)
dir=RIGHT;
else
dir=DOWN;
}
}
else if(curry==row)
{
if(temp1%2==0)
dir=RIGHT;
else
dir=UP;
}
}


if(currx==row)
{
temp1=rand();
if(curry==1)
{
if(temp1%2==0)
dir=LEFT;
else
dir=DOWN;
}
}
else if(curry==row)
{
if(temp1%2==0)
dir=LEFT;
else
dir=UP;
}
}

   
  temp1=rand()%4;

  if(temp1==0||dir==RIGHT)
{
if(dir==RIGHT)
dir=0;
currx++;


if(islegalarea(currx,curry)==false)
{
currx--;
continue;
}

if(isnewcell(currx,curry)==ture)
{
migong[curry*2-1][currx*2-1]=0;
migong[curry*2-1][currx*2-2]=0;
}
continue;
}
else if(temp1==1||dir==LEFT)
{
if(dir==LEFT)
dir=0;
currx--;


if(islegalarea(currx,curry)==false)
{
currx++;
continue;
}

if(isnewcell(currx,curry)==ture)
{
migong[curry*2-1][currx*2-1]=0;
migong[curry*2-1][currx*2]=0;
}
continue;
}
else if(temp1==2||dir==DOWN)
{
if(dir==DOWN)
dir=0;
curryx++;


if(islegalarea(currx,curry)==false)
{
curry--;
continue;
}

if(isnewcell(currx,curry)==ture)
{
migong[curry*2-1][currx*2-1]=0;
migong[curry*2-2][currx*2-2]=0;
}
continue;
}
else if(temp1==3||dir==UP)
{
if(dir==UP)
dir=0;
curry--;


if(islegalarea(currx,curry)==false)
{
curry++;
continue;
}

if(isnewcell(currx,curry)==ture)
{
migong[curry*2-1][currx*2-1]=0;
migong[curry*2][currx*2-2]=0;
}
continue;
}
}





}

int main()
{
setmigong();
return 0;
}



一下是错误项。。但是我发现没有错呀。。
--------------------Configuration: sheji - Win32 Debug--------------------
Compiling...
migong.cpp
E:\zx\c++\Microsoft Visual Studio\MyProjects\sheji\migong.cpp(118) : error C2501: 'temp1' : missing storage-class or type specifiers
E:\zx\c++\Microsoft Visual Studio\MyProjects\sheji\migong.cpp(120) : error C2143: syntax error : missing ';' before 'if'


E:\zx\c++\Microsoft Visual Studio\MyProjects\sheji\migong.cpp(121) : error C2143: syntax error : missing ';' before '{'
E:\zx\c++\Microsoft Visual Studio\MyProjects\sheji\migong.cpp(121) : error C2447: missing function header (old-style formal list?)
E:\zx\c++\Microsoft Visual Studio\MyProjects\sheji\migong.cpp(140) : error C2143: syntax error : missing ';' before 'else'
E:\zx\c++\Microsoft Visual Studio\MyProjects\sheji\migong.cpp(141) : error C2143: syntax error : missing ';' before '{'
E:\zx\c++\Microsoft Visual Studio\MyProjects\sheji\migong.cpp(141) : error C2447: missing function header (old-style formal list?)
E:\zx\c++\Microsoft Visual Studio\MyProjects\sheji\migong.cpp(160) : error C2143: syntax error : missing ';' before 'else'
E:\zx\c++\Microsoft Visual Studio\MyProjects\sheji\migong.cpp(161) : error C2143: syntax error : missing ';' before '{'
E:\zx\c++\Microsoft Visual Studio\MyProjects\sheji\migong.cpp(161) : error C2447: missing function header (old-style formal list?)
E:\zx\c++\Microsoft Visual Studio\MyProjects\sheji\migong.cpp(180) : error C2143: syntax error : missing ';' before 'else'
E:\zx\c++\Microsoft Visual Studio\MyProjects\sheji\migong.cpp(181) : error C2143: syntax error : missing ';' before '{'
E:\zx\c++\Microsoft Visual Studio\MyProjects\sheji\migong.cpp(181) : error C2447: missing function header (old-style formal list?)
E:\zx\c++\Microsoft Visual Studio\MyProjects\sheji\migong.cpp(200) : error C2143: syntax error : missing ';' before '}'
E:\zx\c++\Microsoft Visual Studio\MyProjects\sheji\migong.cpp(200) : error C2143: syntax error : missing ';' before '}'
E:\zx\c++\Microsoft Visual Studio\MyProjects\sheji\migong.cpp(200) : error C2143: syntax error : missing ';' before '}'
E:\zx\c++\Microsoft Visual Studio\MyProjects\sheji\migong.cpp(206) : error C2143: syntax error : missing ';' before '}'
E:\zx\c++\Microsoft Visual Studio\MyProjects\sheji\migong.cpp(206) : error C2143: syntax error : missing ';' before '}'
E:\zx\c++\Microsoft Visual Studio\MyProjects\sheji\migong.cpp(209) : error C2143: syntax error : missing ';' before '{'
E:\zx\c++\Microsoft Visual Studio\MyProjects\sheji\migong.cpp(209) : error C2447: missing function header (old-style formal list?)
执行 cl.exe 时出错.

migong.obj - 1 error(s), 0 warning(s)


[解决办法]
1 大括号不配对
2 ture 替换为 true
[解决办法]
英语也是一门计算机语言的说。

偶遇到类似问题都是用
“每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。”
的方法解决的。

[解决办法]
不懂C++
知道true 怎么写

路过 帮顶~
[解决办法]
#include <cstdlib>
#include <cstdio>
#include <ctime>


int row=50;
int col=50;
int SIZEX_MAZE=row*2+1;
int SIZEY_MAZE=col*2+1;
const int CONST_MAZEX=101;
const int CONST_MAZEY=101;

#define RIGHT 2
#define LEFT -2
#define DOWN 1
#define UP -1

int migong[CONST_MAZEX][CONST_MAZEY]={1};


void setmigong();
bool isnewcell(int x,int y);
bool iscovered();
bool islegalarea(int x,int y);

bool isnewcell(int x,int y)
{
if(migong[y*2-1][x*2-1])
return false;
else
return true;
}

bool iscovered()
{
for(int i=1;i<=col;i++)
{
for(int j=1;j<=row;j++)
{
if(isnewcell(i,j)==true)
return false;
}
}
return true;
}


bool islegalarea(int x,int y)
{
if(x>col||x<1||y>row||y<1)
return false;
return true;
}


void setmigong()
{
srand(time(NULL));

for(int i=0;i<SIZEX_MAZE;i++)


for(int j=0;j<SIZEY_MAZE;j++)
migong[i][j]=1;
int currx,curry;
int temp1;
int dir=0;

migong[1][1]=0;
curry=currx=1;

for(int k=0; ;k++)
{
dir=0;
if(iscovered()==true)
break;

if(currx==1)
{
temp1=rand();
if(curry==1)
{
if(temp1%2==0)
dir=RIGHT;
else
dir=DOWN;
}
}
else if(curry==row)
{
if(temp1%2==0)
dir=RIGHT;
else
dir=UP;
}



if(currx==row)
{
temp1=rand();
if(curry==1)
{
if(temp1%2==0)
dir=LEFT;
else
dir=DOWN;
}
}
else if(curry==row)
{
if(temp1%2==0)
dir=LEFT;
else
dir=UP;
}



temp1=rand()%4;

if(temp1==0||dir==RIGHT)
{
if(dir==RIGHT)
dir=0;
currx++;


if(islegalarea(currx,curry)==false)
{
currx--;
continue;
}

if(isnewcell(currx,curry)== true )
{
migong[curry*2-1][currx*2-1]=0;
migong[curry*2-1][currx*2-2]=0;
}
continue;
}
else if(temp1==1||dir==LEFT)
{
if(dir==LEFT)
dir=0;
currx--;


if(islegalarea(currx,curry)==false)
{
currx++;
continue;
}

if(isnewcell(currx,curry)== true )
{
migong[curry*2-1][currx*2-1]=0;
migong[curry*2-1][currx*2]=0;
}
continue;
}
else if(temp1==2||dir==DOWN)
{
if(dir==DOWN)
dir=0;
currx++;


if(islegalarea(currx,curry)==false)
{
curry--;
continue;
}

if(isnewcell(currx,curry)==true)
{
migong[curry*2-1][currx*2-1]=0;
migong[curry*2-2][currx*2-2]=0;
}
continue;
}
else if(temp1==3||dir==UP)
{
if(dir==UP)
dir=0;
curry--;


if(islegalarea(currx,curry)==false)
{
curry++;
continue;
}

if(isnewcell(currx,curry)==true)
{
migong[curry*2-1][currx*2-1]=0;
migong[curry*2][currx*2-2]=0;
}
continue;
}
}
}


int main()
{
setmigong();
return 0;
}

热点排行