0
点赞
收藏
分享

微信扫一扫

C语言走迷宫

倪雅各 2022-03-11 阅读 43
c语言

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、走迷宫的实现

示例:其中一种方法用数组来实现,通过对X, Y轴的增减来实现移动。

二、使用步骤

1.引入库

代码如下(示例):

#include<stdio.h>
#include <stdlib.h>
#include <conio.h>

2.源码

代码如下(示例):

//*****************作者 XLJ***************//
//*************创作时间 2022/3/3*************//
//*************地点 武汉华星光电*************//

//推箱子

#include<stdio.h>
#include <stdlib.h>
#include <conio.h>

void show();
void Updateoutinput();
void Updateinput();

char a[10][10] = {
	"########",
	"#@     #",
	"#    * #",
	"      o#",
	"########",
};
int x = 1, y = 1;
int p = 2, q = 5;

int sign;

int main()
{
	while(!sign)
	{
		show();
		Updateoutinput();
		Updateinput();
	}

	return 0;
}

void show()
{
	system("cls");
	printf("x=%d, y = %d\n", x, y);
	for(int i=0; i<10; i++)
	{
		puts(a[i]);
	}
}

void Updateoutinput()
{
	if(a[3][6] == '*')
	{
		system("cls");
		printf("Game over");
		getchar();
		sign = 1;
	}
	if((x == 3) && (y == 0))
	{
		system("cls");
		printf("GAME OVER!");
		getchar();
		sign = 1;
	}
}

void Updateinput()
{
	char key;
	key = getch();
	switch(key)
	{
	case 'a':
		{
			if(a[x][y-1] == '#')
				break;
			if(a[x][y-1] == '*' && a[x][y-2] != '#' && a[x][y-2] != '*')
			{
				a[x][y] = ' ';
				y--;
				a[x][y] = '@';
				a[x][y-1] = '*';
			}
			if(a[x][y-1] != '*')
			{
				a[x][y] = ' ';
				y--;
				a[x][y] = '@';
			}
			break;
		}

	case 'd':
		{
			if(a[x][y+1] == '#')
				break;
			if(a[x][y+1] == '*' && a[x][y+2] != '#' && a[x][y+2] != '*')
			{
				a[x][y] = ' ';
				y++;
				a[x][y] = '@';
				a[x][y+1] = '*';
			}
			if(a[x][y+1] != '*')
			{
				a[x][y] = ' ';
				y++;
				a[x][y] = '@';
			}
			break;
		}
	case 'w':
		{
			if(a[x-1][y] == '#')
				break;
			if(a[x-1][y] == '*' && a[x-2][y] != '#' && a[x-2][y] != '*')
			{
				a[x][y] = ' ';
				x--;
				a[x][y] = '@';
				a[x-1][y] = '*';
			}
			if(a[x-1][y] != '*')
			{
				a[x][y] = ' ';
				x--;
				a[x][y] = '@';
			}
			break;
		}
	case 's':
		{
			if(a[x+1][y] == '#')
				break;
			if(a[x+1][y] == '*' && a[x+2][y] != '#' && a[x+2][y] != '*')
			{
				a[x][y] = ' ';
				x++;
				a[x][y] = '@';
				a[x+1][y] = '*';
			}
			if(a[x+1][y] != '*')
			{
				a[x][y] = ' ';
				x++;
				a[x][y] = '@';
			}
			break;
		}
	default:break;
	}
}


总结

以上所讲是本人上年所学的知识,今日偶尔抽出时间来敲代码,试运行成功,证明学过的东西很难忘掉

举报

相关推荐

0 条评论