栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

59.【C++迷宫小游戏(超详细,有手就行)】

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

59.【C++迷宫小游戏(超详细,有手就行)】

#include 
#include       //system函数
#include         //getch()函数
using namespace std;
int x = 1, y = 1;
char map[25][61] =
{
	"000000000000000000000000000000000000000000000000000000000000",
	"0!000000         0000000000000000000000000000000000000000000",
	"0 000000 0000000 0000000000000000000         000000000000000",
	"0 000000 0000000               00000 0000000 000000000000000",
	"0 000000 0000000 0000000000000 00000 0000000         0000000",
	"0        0000000 0000000000000       00000000000000000000000",
	"0000000000000000 000000000000000000000000000000000          ",      //出口
	"000              0000000           000000000000000 000000000",
	"000 000000000000 0000000 000000000 000000000000000 000000000",
	"000 00           0000000 0         00000000        000000000",
	"000 00 00000000000000000 0 0000000 00000000 0000000000000000",
	"000 00 00000000000       0 0000000 00000000 0000 00000000000",
	"000 00 00000000000 0000000 0000000          0000 00000000000",
	"000 00 00000000000 000000  00000000 000000000000 00000000000",
	"00  00             000000 000000000 000000000000 00000000000",
	"000000 00000000000 000000 000000000 000000000000 000000    0",
	"00     00000000000                    0000000000 000000 0000",
	"00 000000000000000 0000000 0000000000 0000000000 000000 0000",
	"00 000000          0000000 0000000000 0000000000 000000 0000",
	"00 000000 0000000000000000 0000000000 0000000000        0000",
	"00 000000 0000000000000000 0000000000 0000000000 00000000000",
	"00 000000 000000           0000000000 0000000000 00000000000",
	"00        00000000 0000000 0000000000            00000000000",
	"000000000000000000 0000000          000000000000000000000000",
	"000000000000000000000000000000000000000000000000000000000000",
	
};
void key_w()
{
	if (map[x - 1][y] != '0')          //判断是否与上方相撞
	{
		map[x][y] = ' ';              
		x--;                           //进行位移准备
		map[x][y] = '!';               //  开始位移       
	}
}
void key_s()
{
	if (map[x + 1][y] != '0')
	{
		map[x][y] = ' ';
		x++;
		map[x][y] = '!';
	}
}
void key_a()
{
	if (map[x][y - 1] != '0')
	{
		map[x][y] = ' ';
		y--;
		map[x][y] = '!';
	}
}
void key_d()
{
	if (map[x][y + 1] != '0')
	{
		map[x][y] = ' ';
		y++;
		map[x][y] = '!';
	}
}

int main()
{
	cout << "**********************欢迎来到迷宫大挑战**********************" << endl<
		for (int j = 0; j < 60; j++)
		{
			cout << map[i][j];
		}
		cout << endl;
	}
	while (x != p || y != q)    //不能是&&,因为while遇到true的时候,会出去
	{
		ch = _getch();          //获取您输入的第一个字符,在c是getch()**加粗样式**
		switch (ch)
		{
		case 's':key_s(); break;
		case 'w':key_w(); break;
		case 'a':key_a(); break;
		case 'd':key_d(); break;
		default:
			cout << "您的指令会出现错误!" << endl;
		}
		system("cls");      //清屏

		for (int i = 0; i < 25; i++)       //目的是得出改变后的图像
		{
			for (int j = 0; j < 60; j++)
			{
				cout << map[i][j];
			}
			cout << endl;
		}
	}
	cout << "恭喜您冲关成功!" << endl;
	system("pasue");            //目的是锁屏
	return 0;

}

如果我讲的不够详细,您可以私信我。我会进一步向您阐述!
【关于getchar()的小专题】
getchar()会的到你手动输入的一个字符,然后把这个字符放到一个缓冲区,直到你按下换行键,才会进行操作.

#include 
using namespace std;
int main()
{
	long nc;
	nc = 0;
	while (getchar() != 'n')    //getchar()得到一个字符并放在缓冲区,当按下回车键时才会运行
	{
		++nc;
		cout << "仨孩子" << endl;
	}
	cout << " " << nc << endl;

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1036903.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号