make:(制作地图)
1 #include<bits/stdc++.h> 2 using namespace std; 3 bool a[40][1001],b[40][1001]; 4 int h[1601][2],dx[4]={0,1,0,-1},dy[4]={1,0,-1,0},sx=1,sy=1,zx,zy,n; 5 bool bfs(){ 6 int x,y,nx,ny,i,j,pf=1,pr=2; 7 for(i=1;i<=n;i++) 8 for(j=1;j<=n;j++) 9 b[i][j]=a[i][j]; 10 while(pf<pr){ 11 x=h[pf][0],y=h[pf++][1]; 12 for(i=0;i<4;i++){ 13 nx=x+dx[i],ny=y+dy[i]; 14 if(b[nx][ny]){ 15 h[pr][0]=nx,h[pr++][1]=ny; 16 b[nx][ny]=0; 17 if(nx==zx&&ny==zy)return 1; 18 } 19 } 20 } 21 return false; 22 } 23 void randx(){ 24 for(int i=1;i<=n;i++) 25 for(int j=1;j<=n;j++) 26 a[i][j]=rand()%2; 27 a[sx][sy]=a[zx][zy]=1; 28 } 29 int main(){ 30 cout<<"Size:"; 31 freopen("migong.txt","w",stdout); 32 cin>>n;cout<<n<<endl; 33 srand((int)time(NULL)); 34 h[1][0]=sx,h[1][1]=sy;zx=zy=n; 35 while(1){ 36 randx(); 37 if(bfs())break; 38 } 39 for(int i=1;i<=n;i++){ 40 for(int j=1;j<=n;j++) 41 if(a[i][j])printf("1 "); 42 else printf("0 "); 43 printf(" "); 44 } 45 system("start go.exe"); 46 return 0; 47 }
go:(开始游戏)
1 #include<bits/stdc++.h> 2 #include<conio.h> 3 using namespace std; 4 int a[40][40],n; 5 void out(){ 6 for(int i=1;i<=n;i++){ 7 for(int j=1;j<=n;j++){ 8 if(a[i][j]==1)cout<<'.'; 9 if(a[i][j]==2)cout<<'*'; 10 if(a[i][j]==0)cout<<'#'; 11 } 12 cout<<endl; 13 } 14 } 15 int main(){ 16 freopen("migong.txt","r",stdin); 17 cin>>n; 18 int i,j,x,y; 19 for(i=1;i<=n;i++) 20 for(j=1;j<=n;j++) 21 scanf("%d",&a[i][j]); 22 a[1][1]=2;i=1;j=1; 23 out(); 24 char k; 25 while(i!=n||j!=n){ 26 k=getch(); 27 x=i;y=j; 28 if(k=='w')i--;if(k=='s')i++;if(k=='a')j--;if(k=='d')j++; 29 a[1][1]=1;if(a[i][j]==0)i=x,j=y; 30 a[i][j]=2; 31 system("cls"); 32 out(); 33 a[i][j]=1; 34 } 35 cout<<"YOU WIN!"<<endl; 36 k=getch(); 37 }
两个文件编译后放在同一个文件夹里,运行make.exe。