C语言 迷宫游戏

这是一个简单的C语言迷宫游戏,借这个迷宫游戏来增强我们对编程的兴趣。

 直接看完整代码:

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<Windows.h>
#define N 100
#define M 100
void Show(char str[][M], int n);
void UpdateWithInput(char str[][M], int n);


int main(void)
{
	char str[N][M] =
	{   
		
		"这是一个迷宫游戏(“*”代表墙壁,“0”代表人物,“G”代表怪物)。",
		"游戏规则:通过用wsad键控制上下左右,在不被怪物吃掉的情况下走出迷宫\n",
		"即为胜利。\n",
		"游戏开始:\n",
		"____________________________________________________________________________\n",
		"*********************",
		"*0  G ***   *********",
		"* ***      G   ******",
		"* *** *** ***********",
		"*   * ***   *********",
		"***   ****G   G *****",
		"**    ****     ******",
		"** ******** *  ******",
		"** *        *G   ****",
		"** ***  *******  ****",
		"****** ********  G***",
		"****** **************",
	};   //保存迷宫
	int n = 17;        
	Show(str, n);            //显示迷宫
	UpdateWithInput(str, n);      //与用户输入有关的更新
	return 0;
}

//函数功能:显示迷宫
void Show(char str[][M], int n)
{
	int i;
	for (i = 0; i < n; i++)                     //显示n行迷宫的数据
	{
		puts(str[i]);
	}
}

//函数功能:完成与用户输入有关的迷宫更新
void UpdateWithInput(char str[][M], int n)
{
	int flage = 0;
	int x = 6, y = 1;
	int exitX = 16, exitY = 6;    //迷宫出口
	char input;
	while (x != exitX || y != exitY)
	{
		if (kbhit())
		{
			input = getch();    //从键盘获取输入
			if ((input == 'a' || input == 'A') && str[x][y - 1] != '*')
			{
				if (str[x][y - 1] == 'G')
				{
					flage = 1;
					goto e;
				}
				str[x][y] = ' ';
				y--;
				str[x][y] = '0';
			}
			if ((input == 'd' || input == 'D') && str[x][y + 1] != '*')
			{
				if (str[x][y + 1] == 'G')
				{
					flage = 1;
					goto e;
				}
				str[x][y] = ' ';
				y++;
				str[x][y] = '0';
			}
			if ((input == 'w' || input == 'W') && str[x - 1][y] != '*')
			{
				if (str[x-1][y] == 'G')
				{
					flage = 1;
					goto e;
				}
				str[x][y] = ' ';
				x--;
				str[x][y] = '0';
			}
			if ((input == 's' || input == 'S') && str[x + 1][y] != '*')
			{
				if (str[x+1][y] == 'G')
				{
					flage = 1;
					goto e;
				}
				str[x][y] = ' ';
				x++;
				str[x][y] = '0';
			}
		}
		system("cls");     //清屏
		Show(str, n);      //显示更新后的地图。
		Sleep(100);   //延时100ms
	}
	printf("YOU win! \n");
	printf("恭喜你走出了迷宫!!");
	system("PAUSE");
e:
	if (flage == 1)
	{
		printf("Game Over!\n");
		printf("你被怪物吃掉了。");
	}
}

不多解释,看代码的注释应该就能懂了。大家可以运行一下,体验一下这个小游戏。

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值