zoukankan      html  css  js  c++  java
  • 无语的迷宫

    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 }
    View Code

    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 }
    View Code

    两个文件编译后放在同一个文件夹里,运行make.exe。

  • 相关阅读:
    HDOJ 1207 汉诺塔II
    [转]写代码的小女孩
    POJ Subway tree systems
    HDOJ 3555 Bomb (数位DP)
    POJ 1636 Prison rearrangement (DP)
    POJ 1015 Jury Compromise (DP)
    UVA 10003
    UVA 103 Stacking Boxes
    HDOJ 3530 Subsequence
    第三百六十二、三天 how can I 坚持
  • 原文地址:https://www.cnblogs.com/mimiorz/p/7274499.html
Copyright © 2011-2022 走看看