1:有些{}沒有匹配,如有{,下面沒有}
2.有什麽字符妳是在中文的狀態下打的,如if(,那個括號明顯不壹樣哦,vc中認不到
3.妳在用void 類型的函數時最好加上(),如Init()不然會有警告。
4.有些函數還沒定義又沒進行申明,就用到。這樣程序認不到。要麽妳要在前面進行申明,要麽把函數的定義寫在調用函數的前面。
給妳個建議:編程習慣要好點哦,這樣以後妳改自己的程序比較明顯看的出自己錯在哪,起碼像{}不匹配的現象不會出現。
給妳改好了,程序如下:
#include<iostream.h>
#include <stdlib.h>
#define LIFE_MAX_ROW 8//定義土地的最大行數
#define LIFE_MAX_COL 8//定義土地的最大列數
//進化狀態
char g_land[LIFE_MAX_ROW+2][LIFE_MAX_COL+2]={0};//代表土地的數組
unsigned g_gen=0;//進化次數
void Plant_Man();//手工播種函數
void Plant_Auto();//自動播種的函數
//初始化
void Init()
{
int i=1,j=1;
for(i=1;i<9;i++)
for(j=1;j<9;j++)
g_land[i][j]='+';
}
//播種
void Plant()
{
int num;
cout<<"請選擇您需要的播種方式,手工請按0,自動請按1"<<endl;
cin>>num;
if(num==0)
Plant_Man();
else
Plant_Auto();
}
void Plant_Man()//手工播種函數
{
int n,i,a,b;
cout<<"請您至少選擇三塊土地來進行播種,請輸入您選擇要播種幾塊土地:"<<endl;
cin>>n;
for(i=0;i<n;i++)
{
cout<<"請您輸入要播種的土地所在行數:"<<endl;
cin>>a;
cout<<"請您輸入要播種的土地所在列數:"<<endl;
cin>>b;
g_land[a][b]='@';
}
}
void Plant_Auto()//自動播種的函數
{
int n,a,b;
n=rand()%64;
for(int i=0;i<n;i++)
{
a=rand()%8+1;
b=rand()%8+1;
g_land[a][b]='@';
}
}
void Grow()//繁衍輸出函數
{
int a[10][10]={0};
int i,j,n=0;
for(i=1;i<9;i++)
for(j=1;j<9;j++)
{
if(g_land[i][j]=='+')
{
if(g_land[i+1][j]=='@')n++;
if(g_land[i+1][j+1]=='@')n++;
if(g_land[i+1][j-1]=='@')n++;
if(g_land[i][j+1]=='@')n++;
if(g_land[i][j-1]=='@')n++;
if(g_land[i-1][j]=='@')n++;
if(g_land[i-1][j+1]=='@')n++;
if(g_land[i-1][j-1]=='@')n++;
if(n==3)
a[i][j]=1;
}
else if(g_land[i][j]=='@')
{
if(g_land[i+1][j]=='@')n++;
if(g_land[i+1][j+1]=='@')n++;
if(g_land[i+1][j-1]=='@')n++;
if(g_land[i][j+1]=='@')n++;
if(g_land[i][j-1]=='@')n++;
if(g_land[i-1][j]=='@')n++;
if(g_land[i-1][j+1]=='@')n++;
if(g_land[i-1][j-1]=='@')n++;
if(n<4&&n>1)
a[i][j]=1;
}
}
for(i=1;i<9;i++)
for(j=1;j<9;j++)
{
if(a[i][j]==0)
g_land[i][j]='+';
else
g_land[i][j]='@';
}
cout<<g_land<<endl;
}
void Judge()
{
int k,m,n=0;
for(int i=1;i<9;i++)
for(int j=1;j<9;j++)
if(g_land[i][j]=='@')
n++;
if(n==0)
{
cout<<"您的田地處於消亡狀態,請選擇是否重新開始遊戲,若是請選擇0,若不是選擇1"<<endl;
cin>>m;
if(m==0)
Init();
else
cout<<"遊戲結束"<<endl;
}
else if(n!=0)
{
cout<<"請問您要繼續繁衍還是重新開始?繼續請選擇0,重新開始請選擇1"<<endl;
cin>>k;
if(k==0)
Grow();
else
Init();
}
}
void main()
{
cout<<"這是壹個關於進化的仿真遊戲。您在壹塊地裏播上種子,然後可以觀察生命在這塊地上的繁衍過程。"<<endl;
Init();
Plant();
Grow();
Judge();
}