2025.5.14第二次提交,修改完成全部编译时的报错,除部分警告之外。

This commit is contained in:
氧原子
2025-05-14 22:15:27 +08:00
parent 09b6ef759a
commit da75133de4
12 changed files with 115 additions and 151 deletions

View File

@@ -2,8 +2,8 @@
#include<string>
#include<vector>
#include"eyebot++.h"
#include"maze_func.h"
#include"maze_parameter.h"
#include"maze_func.h"
using namespace std;
@@ -21,7 +21,7 @@ bool check_mark()
bool S_mark;
bool E_mark;
if (x>0 && y>0) //情况1
if (x>0 && y>0) //情况1
{
if (y == size_y - 1) //N
{
@@ -42,7 +42,7 @@ bool check_mark()
E_mark = mark[x+1][y];
}
}
else if (x==0 && y>0) //情况2
else if (x==0 && y>0) //情况2
{
if (y == size_y - 1) //N
{
@@ -63,7 +63,7 @@ bool check_mark()
E_mark = mark[x+1][y];
}
}
else if (x>0 && y==0) //情况3
else if (x>0 && y==0) //情况3
{
if (y == size_y - 1) //N
{
@@ -84,7 +84,7 @@ bool check_mark()
E_mark = mark[x+1][y];
}
}
else //(x==0 && y==0)
else //(x==0 && y==0)
{
if (y == size_y - 1) //N
{
@@ -106,12 +106,12 @@ bool check_mark()
}
}
bool N_road = (! wall[x][y+1][0] && N_mark);
bool W_road = (! wall[x][y][1] && W_mark);
bool S_road = (! wall[x][y][0] && S_mark);
bool E_road = (! wall[x+1][y][1] && E_mark);
bool N_road = (!wall[x][y+1][0] && N_mark);
bool W_road = (!wall[x][y][1] && W_mark);
bool S_road = (!wall[x][y][0] && S_mark);
bool E_road = (!wall[x+1][y][1] && E_mark);
if (N_road && W_road && S_road && E_road)
if (N_road && W_road && S_road && E_road)
{
check = true;
}
@@ -126,51 +126,51 @@ void maze_entry(int x, int y, int dir, int open)
switch (maze_dir)
{
case 0: //0表示北(上),表示(xy+1)坐标单元格的下方墙壁信息
if (y == mark[0].size() - 1 && open) //检测是否超出容器范围,如果超出,则扩大容器:对每一个内层尾插数据
if (y == mark[0].size() - 1 && open) //检测是否超出容器范围,如果超出,则扩大容器:对每一个内层尾插数据
{
for (i = 0; i < mark.size() - 1; i++)
for (int i = 0; i < mark.size() - 1; i++)
{
mark[i].emplace_back(0);
}
for (i = 0; i < wall.size() - 1; i++)
for (int i = 0; i < wall.size() - 1; i++)
{
wall[i].emplace_back(vector<int>(2,0));
}
}
wall[x][y+1][0] = ! open;
wall[x][y+1][0] = !open;
break;
case 1: //1表示西(左),表示(xy)坐标单元格的左侧墙壁信息
if (x == 0 && open) //检测是否超出容器范围,如果超出,则扩大容器:头插一个内层
if (x == 0 && open) //检测是否超出容器范围,如果超出,则扩大容器:头插一个内层
{
mark.emplace(mark.begin(), mark[0].size(), 0);
wall.emplace(wall.begin(), wall[0].size(), vector<int>(2,0));
}
wall[x][y][1] = ! open;
wall[x][y][1] = !open;
break;
case 2: //2表示南(下),表示(xy)坐标单元格的下侧墙壁信息
if (y == 0 && open) //检测是否超出容器范围,如果超出,则扩大容器:对每一个内层头插数据
if (y == 0 && open) //检测是否超出容器范围,如果超出,则扩大容器:对每一个内层头插数据
{
for (i = 0; i < mark.size() - 1; i++)
for (int i = 0; i < mark.size() - 1; i++)
{
mark[i].emplace(mark[i].begin(), 0);
}
for (i = 0; i < wall.size() - 1; i++)
for (int i = 0; i < wall.size() - 1; i++)
{
wall[i].emplace(wall[i].begin(), vector<int>(2,0));
}
}
wall[x][y][0] = ! open;
wall[x][y][0] = !open;
break;
case 3: //3表示东(右),表示(x+1y)坐标单元格的左侧墙壁信息
if (x == mark.size() - 1 && open) //检测是否超出容器范围,如果超出,则扩大容器:尾插一个内层
if (x == (mark.size() - 1) && open) //检测是否超出容器范围,如果超出,则扩大容器:尾插一个内层
{
mark.emplace_back(mark[0].size(), 0);
wall.emplace_back(wall[0].size(), vector<int>(2,0));
}
wall[x+1][y][1] = ! open;
wall[x+1][y][1] = !open;
break;
}
}
@@ -246,21 +246,21 @@ void explore()
}
old_dir = rob_dir;
if (F_open && unmarked(rob_x, rob_y, old_dir)) //如果前方有通路且前方单元格未被探索
if (F_open && unmarked(rob_x, rob_y, old_dir)) //如果前方有通路且前方单元格未被探索
{
go_to(old_dir); //向前移动一格
explore(); //进行递归在完成所有可到达单元格的访问前一直循环在explore中
go_to(old_dir + 2); //返回到移动前的单元格
}
if (L_open && unmarked(rob_x, rob_y, old_dir + 1)) //如果左侧有通路且前方单元格未被探索
if (L_open && unmarked(rob_x, rob_y, old_dir + 1)) //如果左侧有通路且前方单元格未被探索
{
go_to(old_dir + 1); //向左移动一格
explore(); //进行递归在完成所有可到达单元格的访问前一直循环在explore中
go_to(old_dir - 1); //返回到移动前的单元格
}
if (R_open && unmarked(rob_x, rob_y, old_dir - 1)) //如果右侧有通路且前方单元格未被探索
if (R_open && unmarked(rob_x, rob_y, old_dir - 1)) //如果右侧有通路且前方单元格未被探索
{
go_to(old_dir - 1); //向右移动一格
explore(); //进行递归在完成所有可到达单元格的访问前一直循环在explore中