我正在尝试制作以下 C# 代码的 C++ 等效代码,主要是因为我正在学习 C# 中的教程,而且我更喜欢使用 C++。我的思考过程可能是制作一个外部数组,然后将一个新数组分配到代表矩阵大小的每个索引中。这可以吗,还是有更好的方法可以在 C++ 中实现它?
// current C# code
List<int[,]> pieces;
pieces = new List<int[,]>();
/* I Piece */
pieces.Add(new int[4, 4] {
{0, 0, 0, 0},
{1, 1, 1, 1},
{0, 0, 0, 0},
{0, 0, 0, 0}
});
/* J Piece */
pieces.Add(new int[3, 3] {
{0, 0, 1},
{1, 1, 1},
{0, 0, 0}
});
/* O Piece */
pieces.Add(new int[2, 2] {
{1, 1},
{1, 1}
});
/* S Piece */
pieces.Add(new int[3, 3] {
{0, 1, 1},
{1, 1, 0},
{0, 0, 0}
});
/* T Piece */
pieces.Add(new int[3, 3] {
{0, 1, 0},
{1, 1, 1},
{0, 0, 0}
});
/* Z Piece */
pieces.Add(new int[3, 3] {
{1, 1, 0},
{0, 1, 1},
{0, 0, 0}
});
我的初始代码是在数组中创建一个矩阵。由于我不想改变游戏本身的“棋子”数量,所以固定数组应该没问题。所以这就是我写的等价物。显然,它不起作用,说它不能分配给 int 的实体:
int pieces [7];
//I piece
pieces [0] = new int [4][4];
pieces [0] = {
{0, 0, 0, 0},
{1, 1, 1, 1},
{0, 0, 0, 0},
{0, 0, 0, 0}
}
/* And so on for each piece */