// 121223 走迷宫ah.cpp : 定义控制台应用程序的入口点。///* * Copyright (c) 2012, 烟台大学计算机学院 * All rights reserved. * 作 者: 刘同宾 * 完成日期:2012 年 12 月 23 日 * 版 本 号:v1.0 * * 输入描述: * 问题描述:简单的小迷宫 * 程序输出:* 问题分析:略 * 算法设计:略 */#include "stdafx.h"#include<iostream>#include<conio.h>// 包含字符输入using namespace std;void print(void);//函数声明void up(void);void down(void);void left(void);void right(void);void move(void);int map[10][20]={{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},{1,2,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1},{1,0,0,1,1,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1},{1,1,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,0,1},{1,0,1,1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1},{1,0,0,1,1,1,0,0,0,0,1,1,1,0,1,1,0,0,0,1},{1,0,0,1,0,0,1,1,1,1,1,1,1,0,0,0,1,0,0,1},{1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1},{1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,1},{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}};bool victory=false;int a=1,b=1;int a1=0,b1=0;//主函数int main(){print();char ch;while(!victory){ch=getch();switch(ch){case 'w':up();move();system("cls");print();break; case 's':down();move();system("cls");print();break;case 'a':left();move();system("cls");print();break;case 'd':right();move();system("cls");print();break;}}if(victory){cout<<"大赢家,呼啦啦!!!"<<endl;}cout<<endl;return 0;}//打印迷宫地图void print(){int i,j;for(i=0;i<10;i++){for(j=0;j<20;j++){if(map[i][j]==1){cout<<"#";}else if(map[i][j]==0){cout<<" ";}else if(map[i][j]==2){cout<<'\014';}elsecout<<'\006';}cout<<endl;}}//控制各点的移动//控制向上走void up(){if(1!=map[a-1][b]){a1=a;b1=b;a=a-1;}}//控制向下走void down(){if(1!=map[a+1][b]){a1=a;b1=b;a=a+1;}}//控制向左走void left(){if(1!=map[a][b-1]){a1=a;b1=b;b=b-1;}}//控制向右走void right(){if(1!=map[a][b+1]){a1=a;b1=b;b=b+1;}}//将点的移动的坐标表示出来void move(){if(map[a][b]==3){victory=true;}map[a][b]=2; map[a1][b1]=0;}