自制C++游戏 迷宫
- #include<bits/stdc++.h>
- #include<conio.h>
- using namespace std;
- char mg[17][17]={
- "# ##############",
- "# # # # # ###",
- "## # # ### ##",
- "### ### ##",
- "######## ###",
- "### ## ###",
- "### # # # # ##",
- "### # ### ####",
- "#### ## # # ##",
- "### ## ##### ##",
- "### # # ##",
- "##### ### ###",
- "## # ##########",
- "## #####",
- "########## #",
- "############## #"
- };
- double start,end;
- int x=0;int y=1;
- void disp(){
- system("cls");
- for(int i=0;i<16;i++){
- for(int j=0;j<16;j++){
- printf("%c",mg[i][j]);
- }
- printf("\n");
- }
- printf("x..%d,y..%d",x,y);
- }
- void win(){
- end=clock();
- system("cls");
- printf("YOU WIN!\nTIME:%.2f SECONDS",((double)(end-start)/CLK_TCK));
- }
- int main(){
- start=clock();
- mg[x][y]='o';
- char temp;
- while(x!=15||y!=14){
- disp();
- temp=getch();
- if(temp=='W'){
- if(x!=0&&mg[x-1][y]!='#'){
- mg[x][y]=' ';--x;mg[x][y]='o';
- }
- }
- if(temp=='A'){
- if(y!=0&&mg[x][y-1]!='#'){
- mg[x][y]=' ';--y;mg[x][y]='o';
- }
- }
- if(temp=='S'){
- if(x!=15&&mg[x+1][y]!='#'){
- mg[x][y]=' ';++x;mg[x][y]='o';
- }
- }
- if(temp=='D'){
- if(y!=15&&mg[x][y+1]!='#'){
- mg[x][y]=' ';++y;mg[x][y]='o';
- }
- }
- }
- win();
- }
解释:
把迷宫保存在数组里。windows.h和conio.h都是常用的头文件,getch()表示输入一个字符但是不在屏幕上显示这个字符。我们不断读入字符,根据WASD分别判断是往上、下、左、右走,先判断要走的方向是否是墙(用#号表示),如果不是,那么就移动,直到终点结束循环。
运行效果截图:
赞 (0)