【发布时间】:2018-04-17 16:30:46
【问题描述】:
我被这个使用 c# 的 Unity 框架编码的二维数组所困扰。我正在尝试使用智能代理创建 Checker 游戏。所以我试图得到所有的碎片并传递给Alpha Beta算法并获得最大数量的对手方。但为了做到这一点,我必须检查我板上的每一块。我在我的游戏中使用 8by8 板。所以我用了
Piece[,] pieces = new Pieces[8,8];
代码以存储片段。现在我想换一件并取回这些碎片。 我尝试了多种方法并进行了实验,但我找不到任何方法来获取此数组并更改一个通用对象并检索更改后的列表。
请帮我解决这个问题。提前致谢。
我在这里写下了我的实验。关于这件事有什么建议还是我做错了什么?....
internal static void TryMoveInImaginaryWay(Piece[,] piece)
{
int x = 0;
int y =2;
int x1 = 1;
int y1 = 3;
Moves move = new Moves();
move.X = x;
move.Y = y;
move.X1 = x1;
move.Y1 = y1;
// Copping the pieces state
Piece p = piece[x, y];
//I am creating a list with those pieces
List<Piece> temppiecelist = new List<Piece>();
foreach (Piece pi in piece)
{
if (pi == p)
{
piece[x1, y1] = p;
temppiecelist.Add(null);
}
else
{
temppiecelist.Add(pi);
}
}
Piece[,] piek = temppiecelist; // can't convert it says Cannot Implicitly convert type "System.Collection.Generic.List<Piece>' to Piece[*,*]'"
// I know i can't convert like this, but any ideas.
//Piece[,] piek = new Piece[8, 8];
我在问,有没有办法改变 Piece[,] 数组列表值。我想要与输出相同的格式。
【问题讨论】:
-
java 标签已移除。请不要使用与您的问题或代码没有直接关系的标签。这可能会给您的问题带来负面关注,因为它会惹恼那些关注错误放置标签的人。
-
UnityScript标签也是如此,这是C#。
-
感谢您通知我。 :)
-
现在格式错误已经解决了,我还是不太明白你在问什么。
-
你为什么要使用列表?我们无法弄清楚您在做什么或为什么要这样做,因此很难告诉您正确的做法是什么。
标签: c# arrays multidimensional-array