好久没有发布作品写博客了。优快云代码排版还是那么蛋疼。。
上个星期老师留的作业,做一个迷宫的小游戏。那时候刚刚会自己画地图来做迷宫。
后来觉得好麻烦好麻烦就想要他随机生成地图。
而后就在网上找了很多资料进行研究实验学习。(也有些精华借鉴)
如今做出还不完美,界面奇丑的迷宫小游戏~大家凑合看哈~
文件我分成了三个部分,头文件labyrinth.h、函数文件fun.c和主函数文件main.c
具体都做了很多注释可自行研究。
环境:visual studio 2013
下面是头文件代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <time.h>
#include <windows.h>
#define MAZE_MAX 100 //最大上限
#define UPWARD 0 //上,下,左,右
#define DOWN 1
#define LEFT 2
#define RIGHT 3
enum bool{false, true};
char map[MAZE_MAX + 2][MAZE_MAX + 2]; //+2是因为在绘制地图前,会将图周围置零防止围墙被挖断。
//所以要+2来弥补扔掉的外围一圈墙。且因为用了宽字符来输出字符,所以为2倍长度
unsigned int size; //地图大小 随意设置
UINT x, y; //用于人物控制的坐标变量
void WriteChar(int Wide, int High, char* pszChar); //坐标函数
void menu_ui(void); //菜单界面
int menu_s(void); //菜单选择
void print_maze(); //打印地图
void make_maze(); //地图绘制
int search_path(int x, int y); //寻路
void init_wall(); //填充墙
int control(); //控制
void person(UCHAR dirct_flag, int coords);
void console(); //设置控制台大小的动画
下面是 函数文件
#include "labyrinth.h"
/*
// 打印字符到控制台指定位置
// 参数1 : 宽度 X
// 参数2 : 高度 Y
// 参数3 : 打印的字符
*/
void WriteChar(int x, int y, char* pszChar)
{
CONSOLE_CURSOR_INFO cci;
cci.dwSize = 1;
cci.bVisible = FALSE; // 是否显示光标
SetConsoleCursor