-
Bio
一只没有什么实力的蒟蒻
迷宫代码:#include<bits/stdc++.h> #include<windows.h> using namespace std; int a[55][55],vis[55][55],px[]={0,1,0,-1},py[]={1,0,-1,0},f=1,s=0,n,cnt=0; string name; void dfs(int x,int y){ if (!f)return; if (xn&&yn){ f=0; return; } for (int i=0;i<4;i++){ int nx=x+px[i],ny=y+py[i]; if (nx<1||ny<1||nx>n||ny>n||vis[nx][ny]||a[nx][ny])continue; vis[nx][ny]=1; dfs(nx,ny); } } void get(){ srand(rand()); s++; cout<<"正在加载…(已尝试"<<s<<"组)\n"; for (int i=1;i<=n;i++){ srand(rand()); for (int j=1;j<=n;j++){ srand(rand()); vis[i][j]=0; srand(rand()); a[i][j]=(rand()%8>=3?0:1); if ((i1&&j1)||(in&&jn)){ cout<<" "; continue; } cout<<(a[i][j]?"#":" "); } cout<<"\n"; } a[1][1]=0; a[n][n]=0; vis[1][1]=1; dfs(1,1); Sleep(1); system("cls"); } int main(){ system("title 迷宫(C++)(cz版)(蒟蒻制造).exe"); system("color 5B");//5B system("mode con cols=150 lines=60"); system("cls"); cout<<"请输入玩家名字(请用下划线代替空格):"; cin>>name; system("cls"); cout<<"请输入迷宫边长(5-50):"; cin>>n; system("cls"); if (n>50||n<5){ system("cls"); Sleep(5000); cout<<"警告:边长超出范围,系统已崩溃!"; exit(0); } srand(time(0)); while(f){ get(); } cout<<"共尝试"<<s<<"组\n"; for (int i=1;i<=n;i++){ for (int j=1;j<=n;j++){ cout<<(a[i][j]?"#":" "); } cout<<"\n"; } Sleep(1000); system("cls"); int x=1,y=1; while(x!=n||y!=n){ cout<<"o:玩家 #:墙 @:终点\n"; for (int i=1;i<=n;i++){ for (int j=1;j<=n;j++){ if (ix&&jy){ cout<<"o"; continue; } if (in&&jn){ cout<<"@"; continue; } cout<<(a[i][j]?"#":" "); } cout<<"\n"; } char move; cout<<" W\nA D\n S\n不区分大小写\n"; cin>>move; system("cls"); if (move!='W'&&move!='w'&&move!='A'&&move!='a'&&move!='S'&&move!='s'&&move!='D'&&move!='d'){ cout<<"请勿输入其他字符。"; Sleep(1000); system("cls"); continue; } if ((move=='W'||move=='w')&&!a[x-1][y]&&x-1>=1&&x-1<=n){ x--; cnt++; } else if ((move=='S'||move=='s')&&!a[x+1][y]&&x+1>=1&&x+1<=n){ x++; cnt++; } else if ((move=='A'||move=='a')&&!a[x][y-1]&&y-1>=1&&y-1<=n){ y--; cnt++; } else if ((move=='D'||move=='d')&&!a[x][y+1]&&y+1>=1&&y+1<=n){ y++; cnt++; } else{ cout<<"请勿移动到"#"上或边界外。"; Sleep(1000); system("cls"); } } for (int i=1;i<=n;i++){ for (int j=1;j<=n;j++){ if (in&&jn){ cout<<"@"; continue; } cout<<(a[i][j]?"#":" "); } cout<<"\n"; } Sleep(2500); system("cls"); for (int ind=n;ind>=1;ind--){ for (int i=1;i<=n;i++){ for (int j=1;j<=n;j++){ if (in&&jn&&indn){ cout<<"@"; continue; } if ((i>=ind&&jind)||(i==ind&&j>=ind)){ int op=rand()%5; char b[]={'*','.','^',' ',':'}; cout<<b[op]; continue; } if (i>=ind&&j>=ind){ cout<<" "; continue; } cout<<(a[i][j]?"#":" "); } cout<<"\n"; } Sleep(100); system("cls"); } cout<<"尊敬的"<<name<<"先生/女士,您已通关!迷宫边长:"<<n<<"使用步数:"<<cnt; Sleep(2000); system("cls"); cout<<"您对此游戏的评价或改进意见是(可以输入0跳过):"; string s; cin>>s; system("cls"); cout<<"尊敬的"<<name<<"先生/女士,您已通关!迷宫边长:"<<n<<"使用步数:"<<cnt<<"\n感谢您的游玩,再见!"; return 0; }
-
Stat
-
Rating