走迷宫 ege版 有图哟

自己去我的资源下载 ege娘,免费的,有教程的

主要代码:

有一个bug额,没有改,w a s d 是 上 左 下 右

// 走迷宫_图形版.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
// maze_v0.2.cpp : 定义控制台应用程序的入口点。
//

#include 
#include "stdafx.h"
#include 
#include 
#include 
#include "resource.h"

using namespace std;

#define WIDTH 10
#define LENGTH 20

//函数声明//
void draw(void);
void moveUp(void);
void moveDown(void);
void moveLeft(void);
void moveRight(void);
void change(void);

int map[WIDTH][LENGTH] =
{
	{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, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1},
	{1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1},
	{1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1},
	{1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1},
	{1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1},
	{1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1},
	{1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1},
	{1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 3, 1},
	{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
};

int x = 1;//初始x坐标
int y = 1;//初始y坐标
int xx = 0;
int yy = 0;
bool victory = false;

int main()
{
	initgraph(460, 230);//initgraph(230,460);//230 460

	char select;
	setrendermode(RENDER_MANUAL);//防止刷图闪
	draw();
//	setrendermode(RENDER_MANUAL);

	while (!victory)
	{
		setrendermode(RENDER_AUTO);
		select = getch();

		switch(select)
		{
		case 72:
		case 'W':
		case 'w':
			moveUp();
			change();
			setrendermode(RENDER_MANUAL);
			cleardevice();//system("cls");
			draw();
//			setrendermode(RENDER_MANUAL);
			break;
		case 80:
		case 'S':
		case 's':
			moveDown();
			change();
			setrendermode(RENDER_MANUAL);
			cleardevice();//system("cls");
			draw();
			break;
		case 75:
		case 'A':
		case 'a':
			moveLeft();
			change();
			setrendermode(RENDER_MANUAL);
			cleardevice();//system("cls");
			draw();
			break;
		case 77:
		case 'D':
		case 'd':
			moveRight();
			change();
			setrendermode(RENDER_MANUAL);
			cleardevice();//system("cls");
			draw();
			break;
		}
//		setrendermode(RENDER_AUTO);
	}

	cout << "win!\n";
 
	closegraph();
	return 0;
}

void draw()//draw a map//
{
	PIMAGE img;
	int val_1 = 0;
	int val_2 = 0;

	for (val_1=0; val_1--------------遍历数组//
	{
		for (val_2=0; val_2-----------------画墙//
			{
				getimage(img, "JPG", "qiang");
//				cout << "# ";
//				putimage(val_1*23, val_2*23, img);
				putimage(val_2*23, val_1*23, img);//注意顺序
			}
			else if (0 == map[val_1][val_2])//<>-----------------画路//
			{
				getimage(img, "JPG", "kongge");
			//	cout << "  ";
//				putimage(val_1*23, val_2*23, img);
				putimage(val_2*23, val_1*23, img);
			}
			else if (2 == map[val_1][val_2])//<>-----------------画人//
			{
				getimage(img, "JPG", "ren");
		//		cout << "·";
//				putimage(val_1*23, val_2*23, img);
				putimage(val_2*23, val_1*23, img);
			}
			else if (3 == map[val_1][val_2])//<>-----------------画出口//
			{
				getimage(img, "JPG" ,"end");
		//		cout << "* ";
//				putimage(val_1*23, val_2*23, img);
				putimage(val_2*23, val_1*23, img);
			}
			delimage(img);
		}
		cout << endl;
	}
}

void moveUp()//上移//
{
	if (1 != map[x-1][y])
	{
		xx = x;
		yy = y;
		x = x - 1;
	}
	else
	{
		return ;
	}
}

void moveDown()//下移//
{
	if (1 != map[x+1][y])
	{
		xx = x;
		yy = y;
		x = x + 1;
	}
	else
	{
		return ;
	}
}

void moveLeft()//左移//
{
	if (1 != map[x][y-1])
	{
		xx = x;
		yy = y;
		y = y - 1;
	}
	else
	{
		return ;
	}
}

void moveRight()//右移//
{
	if (1 != map[x][y+1])
	{
		xx = x;
		yy = y;
		y = y + 1;
	}
	else
	{
		return ;
	}
}

void change()
{
	if (3 == map[x][y])
	{
		victory = true;
	}
	map[x][y] = 2;
	map[xx][yy] = 0;
}


 

走迷宫 ege版 有图哟_第1张图片

 

你可能感兴趣的:(C/C++,成长历程,C++那些事)