- #include < stdlib.h>
- #include < time.h>
- #include < stdio.h>
- #include < conio.h>
- main()
- {int x,y,a[72][22];
- char o;
- int c,d,four,k=0,i,end,step;
- randomize();
- /* printf("Do you want it run or step?(0/1)");
- scanf("%d",&step);*/
- clrscr();
- for(x=0;x < 72;x++){
- for (y=0;y < 22;y++){
- if ((y==0)||(x==0)||(x==71)||(y==21)) {
- a[x][y]=11;
- continue;}
- if (random(3)==0) {
- a[x][y]=11;
- gotoxy(x,y);
- printf("#");
- }
- else
- a[x][y]=1;
- }
- }
- for(y=1;y < 10;y++)
- { a[1][y]=1;
- gotoxy(1,y);
- printf(" ");
- a[70][21-y]=1;
- gotoxy(70,21-y);
- printf(" ");
- }
- x=1;
- y=1;
- end=0;
- gotoxy(1, 23);
- printf("Step?(1/0) ");scanf("%d", &step);
- //Above is to prepare the Maze. Now, our little mouse is comming.
- while((x < 70)||(y < 20)) {
- c=x;d=y;four=0;
- do{
- k++;
- if ((a[x+1][y]==1)||((a[x+1][y]%7==0)&&(a[x][y]%2!=0)&&(four==1)))
- {
- a[x][y]=a[x][y]*2;
- x=x+1;
- break;
- }
- if ((a[x][y+1]==1)||((a[x][y+1]%5==0)&&(a[x][y]%3!=0)&&(four==1)))
- {
- a[x][y]=a[x][y]*3;
- y=y+1;
- break;
- }
- if ((a[x][y-1]==1)||((a[x][y-1]%3==0)&&(a[x][y]%5!=0)&&(four==1)))
- {
- a[x][y]=a[x][y]*5;
- y=y-1;
- break;}
- if ((a[x-1][y]==1)||((a[x-1][y]%2==0)&&(a[x][y]%7!=0)&&(four==1)))
- {a[x][y]=a[x][y]*7;
- x=x-1;
- break;
- }
- four++;
- if (four == 2){
- gotoxy(25, 23); printf("Cannot go out!");
- end=1;
- break;}
- if (k>3000) {
- gotoxy(30, 23); printf("Too long!");
- end=1;
- break;}
- }while(1);
- if (end==1) break;
- /* gotoxy(x,y);printf("*");*/
- gotoxy(c,d);printf("-");
- gotoxy(16, 23); printf("step:%d ", k);
- gotoxy(x,y); printf("*");
- if (step==1) getch();
- }/* no end point*/
- if (end==1) printf("Error.");
- else printf("ok!");
- getch();
- }/*end main()*/
- //该片段来自于http://www.codesnippet.cn/detail/14122012995.html
来源: http://www.codesnippet.cn/detail/14122012995.html