C语言实现三种模式迷宫
废话先不多说,直接上游戏内图片
该小迷宫有三种模式,第一种模式是地图全亮的,第二种是可侦察式迷雾地图,第三种是迷雾地图。
由于在这里我画墙用的是小方块和小球( ■ □ ●),所以可能在某些编译器会报错、不识别,不过没有事,重新找字符替代就完事了,但要注意比例。
实际上坐标轴是这样的,往下走,就是y+,往上走,就是y-,往左走就是x-,往右走就是x+
system("cls"); //清屏函数
sleep(1000); //可延时输出,单位是ms,1000ms=1s
//这个是坐标函数,是用来定义光标的位置的,调用的时候只需输入你想调试的坐标即可
void gotoxy(int x,int y)
{
COORD coord = {
(short)x, (short)y};
HANDLE hout = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hout, coord);
}
//这个是颜色函数,是用来改变字符颜色的
void color(int color)
{
HANDLE hout = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hout, (BYTE)color); //得到的数值的范围是0~15
//0 = 黑色, 1 = 蓝色, 2 = 绿色, 3 = 湖蓝色, 4 = 红色, 5 = 紫色, 6 = 黄色, 7 = 白色,
//8 = 灰色, 9 = 淡蓝色, 10 = 淡绿色, 11 = 淡浅绿色, 12 = 淡红色, 13 = 淡紫色, 14 = 淡黄色, 15 = 亮白色
//若 所选范围大于15,则返回默认的颜色
}
这里是全部的代码
#include <stdio.h>
#include <windows.h>
#include <conio.h>
#include <stdlib.h>
#define WIDTH 26 //地图宽度
#define HEIGHT 19 //地图高度
#define ROAD 0 //路
#define WALL 1 //墙
#define EXIT 2 //出口
void gotoxy(int x,int y); //坐标函数,用来定义光标位置
void color(int color); //颜色函数,可用来改变字符颜色
void welcome(); //欢迎界面
void story(); //小剧情
void printmap(); //打印地图
void redrawmap(int x, int y); //迷雾地图(当小球走过已显示的路径的范围时,该区域重新变成迷雾)
void redrawvision(int x, int y); //可侦察式迷雾地图(当小球走过已显示的路径的范围时,该区域可走路径为已显示)
void end_bkb(); //结束界面
void menu(); //提示栏:可选择游戏难度
void move(int x, int y); //小球在地图视图全开和地图视图为迷雾模式的移动情况
void move3(int x, int y); //小球在可侦察式迷雾地图模式的移动情况
void schema(int x, int y); //选择游戏模式(难度)
int sight; //它的值可以决定小球周围可查看区域的大小
//地图 1代表墙,0代表路,2代表出口
int map[HEIGHT][WIDTH]=
{
{
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{
1,0,0,0,0,0,0,0,1,1,1,1,0,1,1,1,1,0,1,1,0,0,0,1,1,1},
{
1,0,1,1,1,0,1,1,0,1,1,1,0,0,0,0,0,0,1,0,0,1,0,1,1,1},
{
1,0,1,0,0,1,0,0,1,0,1,1,0,1,1,0,1,1,0,0,1,1,0,0,1,1},
{
1,0,1,0,1,0,1,0,1,0,0,0,0,0,1,0,1,1,1,0,1,1,1,0,0,1},
{
1,0,0,0,0,0,1,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,1,1,0,1},
{
1,1,0,1,1,0,1,1,1,0,0,0,1,1,1,1,0,0,0,0,1,0,1,1,1,1},
{
1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,1,1,0,0,0,1,1,1},
{
1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,0,1,1,0,0,1,1,1,1,1},
{
1,0,1,0,1,1