- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在开发一个 2D 程序生成的 Unity 游戏,我想知道如何获得四个基本方向(N、E、S、W)以及四个基本方向(NE)上的所有邻居、东南、西南、西北)。
我正在努力实现的示例:
最佳答案
如果我们将单元格坐标视为行
和列
,您可以通过查看上面的行、同一行和下面的行来获得邻居,在我们正在搜索的单元格之前的列、同一列和之后的列。
要获得这些值,我们只需设置 minRow = cell.Row - 1
、maxRow = cell.Row + 1
、minCol = cell.Col - 1
和 maxCol = cell.Col + 1
(当然我们必须检查网格的边界以确保我们不会离开任何一边,而且我们不会返回 Row
和 Col
与我们正在检查的单元格相同的单元格),然后我们返回网格中具有这些坐标的所有项目。
例如:
private static List<T> GetNeighbors<T>(int cellRow, int cellCol, T[,] grid)
{
var minRow = cellRow == 0 ? 0 : cellRow - 1;
var maxRow = cellRow == grid.GetUpperBound(0) ? cellRow : cellRow + 1;
var minCol = cellCol == 0 ? 0 : cellCol - 1;
var maxCol = cellCol == grid.GetUpperBound(1) ? cellCol : cellCol + 1;
var results = new List<T>();
for (int row = minRow; row <= maxRow; row++)
{
for (int col = minCol; col <= maxCol; col++)
{
if (row == cellRow && col == cellCol) continue;
results.Add(grid[row, col]);
}
}
return results;
}
在实践中,它可能看起来像:
private static void Main()
{
var grid = GetSquareGrid(10);
var neighbors = GetNeighbors(4, 5, grid);
Console.Write($"Neighbors of [4,5] are: ");
Console.Write(string.Join(",", neighbors.Select(n => $"[{n.X},{n.Y}]")));
GetKeyFromUser("\n\nDone! Press any key to exit...");
}
private static Point[,] GetSquareGrid(int size)
{
var result = new Point[size, size];
for (int row = 0; row < size; row++)
{
for (int col = 0; col < size; col++)
{
result[row, col] = new Point(row, col);
}
}
return result;
}
输出:
关于c# - 如何找到二维数组中的北、东、南、西和对角线邻居?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57582782/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!