From e22f33af5ec7d6da7c0dd79b3406ec2319490d32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=AD=B1=E5=82=91?= <840465812@qq.com> Date: Mon, 24 Sep 2018 13:12:43 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=BA=90=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 缂栬瘧鐜 windows MinGW --- a.exe | Bin 0 -> 134827 bytes code.cpp | 343 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 343 insertions(+) create mode 100644 a.exe create mode 100644 code.cpp diff --git a/a.exe b/a.exe new file mode 100644 index 0000000000000000000000000000000000000000..4dfb839eb02dc31b15d1eee50c9d6eb7b6832aa6 GIT binary patch literal 134827 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 literal 0 HcmV?d00001 diff --git a/code.cpp b/code.cpp new file mode 100644 index 0000000..9e2584f --- /dev/null +++ b/code.cpp @@ -0,0 +1,343 @@ +#include +#include +#include +#include +#include +#include +#include + +using namespace std; + +// 显示区域的大小 +const size_t sWidth = 30, sHeight = 24; + +// 迷宫的实际大小(必须是奇数!) +const size_t width = 9, height = 9; +const char wall = 1; +const char path = 0; +const char target = 2; +// 地图 +char map[height][width]; +bool fog[height][width]; +bool walk[height][width]; +// 带凿墙列表 +vector, int> > walls; + +/* +随机prim算法的核心是: +1、让迷宫全是墙 +2、选一个格作为迷宫的通路,然后把它的邻墙放入列表 +3、当列表里还有墙时 +——1、从列表里随机选一个墙,如果它对面的格子不是迷宫的通路 +————1、把墙打通,让对面的格子成为迷宫的通路 +————2、把那个格子的邻墙加入列表 +——2、如果对面的格子已经是通路了,那就从列表里移除这面墙 +*/ + +const int up = 0; +const int down = 1; +const int left = 2; +const int right = 3; + +// 四周一步 +int xx[] = { 0, 0, -1, 1 }; +int yy[] = { -1, 1, 0, 0 }; +// 四周两步 +int x2[] = { 0, 0, -2, 2 }; +int y2[] = { -2, 2, 0, 0 }; + +// 玩家坐标 +int playerx; +int playery; +int SPX; +int SPY; +const int margin = 3; + +// 移动光标到xy位置 +void gotoxy(int x, int y) +{ + COORD coord = { (short)x, (short)y }; + SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord); +} + +// 设置全地图为墙 +void setAllWall() +{ + for (int y = 0; y < height; ++y) + for (int x = 0; x < width; ++x) + map[y][x] = wall; +} + +// 是否越界 +bool isOutBounds(int x, int y) +{ + return (x<0 || x >= width + || y<0 || y >= height); +} + +// 向四周探索 +void explore(int x, int y) +{ + // 遍历四个方向 + for (int i = 0; i < 4; ++i) + { + // 顺着一条路走 + for (int x1 = x, y1 = y; + !isOutBounds(x1, y1) + && map[y1][x1] == path; + x1 += xx[i], y1 += yy[i]) + { + // 每走一个格子检查四周是否为通路 + for (int fy = y1 - 1; fy <= y1 + 1; ++fy) + for (int fx = x1 - 1; fx <= x1 + 1; ++fx) + if (!isOutBounds(fx, fy) + && fog[fy][fx]) + fog[fy][fx] = false; + } + } +} + +// 将坐标处的墙添加到待通墙中 +void pushAroundWall(int x, int y) +{ + // 遍历四个方向 + for (int i = 0; i < 4; ++i) + { + int tx = x + xx[i]; + int ty = y + yy[i]; + if (isOutBounds(tx, ty)) + continue; + int wx = x + x2[i]; + int wy = y + y2[i]; + if (isOutBounds(wx, wy)) + continue; + // 只要是墙就加入列表 + if (map[ty][tx] == wall) + walls.push_back(pair, int>(pair( tx,ty ),i )); + } +} + +// 展示地图 +void showMap() +{ + int dx = sWidth / 2 - playerx; + int dy = sHeight / 2 - playery; + // 移动光标到最开始的位置 + gotoxy(1, 1); + + // 遍历整个地图 + for (int sy = 0; sy < sHeight; ++sy) + { + for (int sx = 0; sx < sWidth; ++sx) + { + //putchar(map[y][x]?'@':' '); + int x = sx - dx; + int y = sy - dy; + + const char *Symbol[5] = { "□", "▓", "▽", "☆", "◎" }; + + if (isOutBounds(x, y)) + { + printf("□"); + continue; + } + if (x == playerx && y == playery) + { + printf("◎"); + continue; + } + if (fog[y][x]) + { + printf("▓"); + continue; + } + if (!walk[y][x]) + { + printf("▽"); + continue; + } + if (map[y][x] == path) + { + printf("□"); + continue; + } + if (map[y][x] == target) + { + printf("☆"); + continue; + } + + printf("▓"); + continue; + // 到此截断,后面为单字符地图时用 + + int d = 0; + for (int i = 0; i < 4; ++i) + { + if (!isOutBounds(x + xx[i], y + yy[i]) && map[y + yy[i]][x + xx[i]] == wall) + d |= 1 << i; + + } + + const int up = 1; + const int down = 2; + const int left = 4; + const int right = 8; + char ch = 0; + switch (d) + { + case 0: + ch = '&'; + break; + //case up: + //case down: + case up | down: + ch = '|'; + break; + //case left: + //case right: + case left | right: + ch = '-'; + break; + default: + ch = '+'; + } + putchar(ch); + } + cout << endl; + } + //gotoxy(sWidth/2+1, sHeight/2+1); + //putchar('A'); +} + +/* +// 手动延时函数 +void sleep(int n) +{ +for (int i = 0; i < n*n*n*n; ++i); +} +*/ + +// 刷新地图 +void refresh() +{ + gotoxy(1, 1); + showMap(); +} + +// 生成地图算法,参数为起始点坐标 +void generate(int cx, int cy) +{ + // 首先将地图全部设置为墙 + setAllWall(); + + // 填满迷雾,清空已经走过的路径 + for (int i = 0; i < width*height; ++i) + *((bool*)fog + i) = *((bool*)walk + i) = true; + + //设置玩家的坐标 + playerx = cx; + playery = cy; + + // 从起点开始,将四周的墙壁添加到待凿列表中 + pushAroundWall(cx, cy); + // 把这个点变成路 + map[cy][cx] = path; + + // 只要还有待凿的墙,就一直循环 + while (!walls.empty()) + { + // 随机找个待凿的墙 + int index = rand() % walls.size(); + int wx = walls[index].first.first; + int wy = walls[index].first.second; + int d = walls[index].second; + // 如果是墙,打穿,将下一个点四周的墙壁加入待凿列表 + if (map[wy + yy[d]][wx + xx[d]] == wall) + { + map[wy][wx] = path; + map[wy + yy[d]][wx + xx[d]] = path; + pushAroundWall(wx + xx[d], wy + yy[d]); + //sleep(70); + //refresh(); + } + // 打穿后,将该墙移除待凿列表 + walls.erase(walls.begin() + index); + } + + map[height-2][width-2] = target; + + // 展开迷雾 + explore(playerx, playery); +} + + +// 玩家移动,参数是移动的方向 +void playerMove(int dir) +{ + if (0 > dir || dir >= 4) + return; + int tx = playerx + xx[dir]; + int ty = playery + yy[dir]; + if (isOutBounds(tx, ty)) + return; + if (map[ty][tx] == wall) + return; + if (map[ty][tx] == target) + { + system("cls"); + cout << "游戏胜利!" << endl; + system("pause"); + exit(0); + } + // 只有是路的时候才可以移动 + if (map[ty][tx] == path) { + playerx = tx, playery = ty; + walk[ty][tx] = false; + } + // 移动完后再次探索迷雾 + explore(playerx, playery); +} + +// 每一帧执行更新 +void updata() +{ + char ch = getch(); + switch (ch) + { + case 'w': + playerMove(up); + break; + case 's': + playerMove(down); + break; + case 'a': + playerMove(2); + break; + case 'd': + playerMove(3); + break; + } +} + +int main() +{ + // 设置种子 + srand((unsigned int)time(0)); + do { + // 生成地图 + generate(1, 1); + + // 游戏循环 + while (1) + { + // 输出地图 + showMap(); + // 等待输入,更新 + updata(); + } + + } while (getch() != 0); + + return 0; +} \ No newline at end of file