自制C++游戏 迷宫

 1 #include<bits/stdc++.h>  
 2 #include<conio.h>  
 3 using namespace std;  
 4 char mg[17][17]={  
 5     "# ##############",  
 6     "#  #   # # # ###",  
 7     "##  # #   ### ##",  
 8     "###      ###  ##",  
 9     "########     ###",  
10     "###       ## ###",  
11     "### # # # #   ##",  
12     "###   # ### ####",  
13     "#### ## # #   ##",  
14     "###  ## ##### ##",  
15     "###   #    #  ##",  
16     "#####  ###   ###",  
17     "##  # ##########",  
18     "##         #####",  
19     "##########     #",  
20     "############## #"  
21 };   
22 double start,end;  
23 int x=0;int y=1;  
24 void disp(){  
25     system("cls");  
26     for(int i=0;i<16;i++){  
27         for(int j=0;j<16;j++){  
28             printf("%c",mg[i][j]);  
29         }  
30         printf("\n");  
31     }  
32     printf("x..%d,y..%d",x,y);  
33 }  
34 void win(){  
35     end=clock();  
36     system("cls");  
37     printf("YOU WIN!\nTIME:%.2f SECONDS",((double)(end-start)/CLK_TCK));  
38 }  
39 int main(){  
40     start=clock();  
41     mg[x][y]='o';  
42     char temp;  
43     while(x!=15||y!=14){  
44         disp();  
45         temp=getch();  
46         if(temp=='W'){  
47             if(x!=0&&mg[x-1][y]!='#'){  
48                 mg[x][y]=' ';--x;mg[x][y]='o';  
49             }  
50         }  
51         if(temp=='A'){  
52             if(y!=0&&mg[x][y-1]!='#'){  
53                 mg[x][y]=' ';--y;mg[x][y]='o';  
54             }  
55         }  
56         if(temp=='S'){  
57             if(x!=15&&mg[x+1][y]!='#'){  
58                 mg[x][y]=' ';++x;mg[x][y]='o';  
59             }  
60         }  
61         if(temp=='D'){  
62             if(y!=15&&mg[x][y+1]!='#'){  
63                 mg[x][y]=' ';++y;mg[x][y]='o';  
64             }  
65         }  
66     }  
67     win();  
68 } 

解释:
把迷宫保存在数组里。windows.h和conio.h都是常用的头文件,getch()表示输入一个字符但是不在屏幕上显示这个字符。我们不断读入字符,根据WASD分别判断是往上、下、左、右走,先判断要走的方向是否是墙(用#号表示)​,如果不是,那么就移动,直到终点结束循环。
运行效果截图:

 

 

posted @ 2021-07-06 16:45  计算机知识杂谈  阅读(262)  评论(0编辑  收藏  举报