凯西男孩
|
分享:
▲
▼
Re:【求助】c++也能写迷宫吗?><"
请问有哪位好心的大大可以帮我跟同学改一下程式码,要把它改成8*8的,我们两个改不出来= =麻烦一下qq,以下是程式码,要改成8*8的喔!thank you!这个原本是4*5的= =麻烦各位大大了~
#include <iostream> #include <iomanip> #include <ctime> using namespace std; void reset(char(*)[5]); void print(const char(*)[5]); void d_reset(bool*); const char MAP[4][5]={ {Ƈ',Ɔ',Ɔ',Ƈ',Ƈ'}, {Ƈ',Ƈ',Ɔ',Ƈ',Ɔ'}, {Ɔ',Ƈ',Ƈ',Ɔ',Ɔ'}, {Ƈ',Ƈ',Ƈ',Ƈ',Ƈ'}}; int main (){ cout <<"MAP:" << endl; print(MAP); cout <<"search:" << endl; char a[4][5]={Ɔ'}; reset(a); int p[2] = {0, 0}; while(a[p[0]][p[1]]==Ƈ') { srand(time(0)); static int i=0; static bool d[4]={0}; if(i==0 && p[1]<4 && a[p[0]][p[1]+1]==Ƈ') {a[p[0]][p[1]]='*' p[1]+=1; d_reset(d); i=rand()%4;} else if(i==1 && p[0]<3 && a[p[0]+1][p[1]]==Ƈ') {a[p[0]][p[1]]='*' p[0]+=1; d_reset(d); i=rand()%4;} else if(i==2 && p[0]>0 && a[p[0]-1][p[1]]==Ƈ') {a[p[0]][p[1]]='*' p[0]-=1; d_reset(d); i=rand()%4;} else if(i==3 && p[1]>0 && a[p[0]][p[1]-1]==Ƈ') {a[p[0]][p[1]]='*' p[1]-=1; d_reset(d); i=rand()%4;} else { d=1; if(d[0]==1&&d[1]==1&&d[2]==1&&d[3]==1) {reset(a); i=0; d_reset(d); p[0]=0; p[1]=0;} else {while(d==1){i=rand()%4;}}} if(p[0]==3 && p[1]==4) { a[3][4]='*' print(a); cout << "success!!" << endl; char y; cout << "search next?(y/n) "; cin >> y; if(y=='n') break; reset(a); p[0]=p[1]=0; i=0; } } system("pause"); return 0; } void reset(char(*a)[5]) { for(int i=0; i<4; i++) for(int j=0; j<5; j++) a[j] = MAP[j]; } void print(const char(*A)[5]) { for(int i=0; i<4; i++) { for(int j=0; j<5; j++) cout << setw(2) << A[j]; cout << endl; } } void d_reset(bool* d) { for(int i=0; i<4; i++) d=0; }
|