• 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 (x==n&&y==n){
    		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 ((i==1&&j==1)||(i==n&&j==n)){
    				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 (i==x&&j==y){
    					cout<<"o";
    					continue;
    				}
    				if (i==n&&j==n){
    					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 (i==n&&j==n){
    				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 (i==n&&j==n&&ind==n){
    					cout<<"@";
    					continue;
    				}
    				if ((i>=ind&&j==ind)||(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;
    }
    
  • Recent Solutions

    This person is lazy and didn't write any solutions.
  • Stat

  • Rating

  • This person is lazy and didn't write anything.