C# 按随机行和列排列对象
8列6行 我有48个游戏对象,我希望它们在每次游戏开始时都以随机的行和列排列,但如何使用addPiece方法实现这一点?使用以下方法:C# 按随机行和列排列对象,c#,list,random,C#,List,Random,8列6行 我有48个游戏对象,我希望它们在每次游戏开始时都以随机的行和列排列,但如何使用addPiece方法实现这一点?使用以下方法: private void InitialSetup() { AddPiece(whiteRook, white, 0, 0); AddPiece(whiteKnight, white,1,2); AddPiece(whiteBishop, white,2,0); AddPiece(w
private void InitialSetup()
{
AddPiece(whiteRook, white, 0, 0);
AddPiece(whiteKnight, white,1,2);
AddPiece(whiteBishop, white,2,0);
AddPiece(whiteQueen, white, 3,4);
AddPiece(whiteKing, white, 4, 6);
AddPiece(whiteBishop, white,5,0);
AddPiece(whiteKnight, white,6,3);
AddPiece(whiteRook, white, 7, 6);
}
public void AddPiece(GameObject prefab, Player player, int col, int row)
{
GameObject pieceObject = board.AddPiece(prefab, col, row);
player.pieces.Add(pieceObject);
pieces[col, row] = pieceObject;
}
Random rand=new Random();
//创建一个从0到47的数组,每个数字出现一次
int[]randomNumbers=可枚举范围(0,48)
.Select(x=>new{x=x,rand=rand.Next()})
.OrderBy(x=>x.rand)
.选择(x=>x.x)
.ToArray();
int[,]矩阵=新的int[6,8];
对于(int i=0;i<48;i++)
{
//行和列从索引0开始
int行=随机数[i]/8;
int col=随机数[i]%8;
矩阵[行,列]=i;
}
谢谢你的回答,我不明白如何使用你用add-Piece方法写的东西我没有写add-Piece方法。作为示例,我只编写了将随机数添加到矩阵中的代码。我更新了代码,将数字0到47随机放入一个数组中。随机数的第一个索引包含30。这意味着第一部分将进入第3行(30/8)和第6列(30%8),其中行和列从零开始。好的,非常感谢。。我需要为方法做更多的工作,因为您正在将行和列传递给方法,所以在调用该方法获取行和列之前,将使用我的代码。
Random rand = new Random();
//create an array from 0 to 47 with each number occurring once
int[] randomNumbers = Enumerable.Range(0, 48)
.Select(x => new { x = x, rand = rand.Next() })
.OrderBy(x => x.rand)
.Select(x=> x.x)
.ToArray();
int[,] matrix = new int[6,8];
for (int i = 0; i < 48; i++)
{
//rows and columns start at index zero
int row = randomNumbers[i] / 8;
int col = randomNumbers[i] % 8;
matrix[row, col] = i;
}