查找矩阵中单元格的相邻元素
Finding adjacent elements of cell in a matrix
>我有以下矩阵,有 25 行和 13 列:
A B C D E F G
1 - - - - - - - - - - - 1 - - - - - - - - - - - 1
| x x x x x x x x x x x x x x x x x x x x x x x |
| x x x 1 - - - - - - - 1 - - - - - - - 1 x x x |
| x x x | x x x x x x x x x x x x x x x | x x x |
| x x x | x x x 1 - - - 1 - - - 1 x x x | x x x |
| x x x | x x x | x x x x x x x | x x x | x x x |
1 x x x 1 x x x 1 x x x x x x x 1 x x x 1 x x x 1
| x x x | x x x | x x x x x x x | x x x | x x x |
| x x x | x x x 1 - - - 1 - - - 1 x x x | x x x |
| x x x | x x x x x x x x x x x x x x x | x x x |
| x x x 1 - - - - - - - 1 - - - - - - - 1 x x x |
| x x x x x x x x x x x x x x x x x x x x x x x |
1 - - - - - - - - - - - 1 - - - - - - - - - - - 1
行和列除以 7,我将字母放在 A-G 的顶部以使其更明显。在矩阵中,我们有"1"。符号"1"表示从游戏 https://en.wikipedia.org/wiki/Nine_men%27s_morris 放置元素的可能位置。我试图弄清楚是否有人给了我值为"1"的单元格的 (x,y(,我如何找到所有相邻单元格的坐标列表?
我尝试查找单元格是否在内部矩形中,并进一步直接根据 Ox 和 Oy 计算偏移量是多少,但它不起作用
一般来说,要找到相邻的单元格,我们可以使用以下结构:
topLeft = array[ x - 1 ][ y - 1 ]
top = array[ x ][ y - 1 ]
topRight = array[ x + 1 ][ y - 1 ]
midLeft = array[ x - 1 ][ y ]
midRight = array[ x + 1 ][ y ]
botLeft = array[ x - 1 ][ y + 1 ]
bot = array[ x ][ y + 1 ]
botRight = array[ x + 1 ][ y + 1 ]
请注意,上面的代码可以应用于不边界的单元格。其他方面,您将超出数组索引范围
这是所有可能的相邻单元格的列表。 目前还不清楚您想对这个相邻的单元格做什么,所以这是我现在可以提供的尽可能多的信息。
回答您的问题"如何找到所有相邻单元格的坐标列表?
使用上述结构,您可以将坐标存储在向量中,例如:
struct cords{
int cordX;
int cordY;
};
然后,一旦您使用上述方法找到相邻的单元格,您就可以执行以下操作
cords c;
c.cordX = ...;
c.cordY=...;
vector<cords> coordinates;
coordinates.push_back(c);
相关文章:
- 将QIcon添加到QTableView单元格
- 当用户在qtablewidget中输入单元格时,如何获得信号?C++
- 查找矩阵中单元格的相邻元素
- C++:在多个线程中访问同一数组/向量的不同单元格是否会产生数据竞赛?
- 当我使用需要计算数组单元格地址的模板时,奇怪的C++行为
- PyQT - 在 QTableWidget 单元格中显示垂直文本
- 2D 数组,某些单元格保存特定数据
- 为什么通过定义另一个指针单元格,整个代码停止工作?
- CLI/C++dataGridView示例-设置comobox单元格列表的索引
- 用单元格表示迷宫
- 为什么不能使用 setData() 在 QTreeView 中设置单元格的背景颜色?
- 将 GtkTreeView 中的单元格设置为以编程方式编辑模式
- 如何防止Qt中的当前单元格更改信号或跳过"processing"?
- 将当前多边形数据单元与下一个多边形单元格 - VTK 进行比较
- VTK:尝试使用 vtkrubberbandpick&vtkHardwareSelector 选择区域中的可见单元格
- QTableWiget::cellChanged 信号不会为具有 QTableWidgetItem 的单元格发出
- 当存在空单元格时,用于 c++ 的 Tsv 文件解析器会突然结束
- C++ unordered_map<T,int> 如何区分空单元格和 0
- 基于单元格代替QTableWidget中的一行
- 如何修改VTKPolyData中的单元格中的一个点