Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将多维数组反转4次_C#_Arrays_Multidimensional Array - Fatal编程技术网

C# 将多维数组反转4次

C# 将多维数组反转4次,c#,arrays,multidimensional-array,C#,Arrays,Multidimensional Array,对于一个简单的游戏,我需要一个在启动时动态生成的记分板。此记分板以多维数组的形式存储在C#中。生成基本分数并不难,但问题是这个数组应该反转4次,如下所示 多维数组: int[,] scoreBoard = new int[4, 4]; int[,]记分板=新int[4,4]; 基本数字: { 5, 10, 15, 20 10, 15, 20, 25 15, 20, 25, 30 } { 5, 10, 15, 20 10, 15,

对于一个简单的游戏,我需要一个在启动时动态生成的记分板。此记分板以多维数组的形式存储在C#中。生成基本分数并不难,但问题是这个数组应该反转4次,如下所示

多维数组:

int[,] scoreBoard = new int[4, 4]; int[,]记分板=新int[4,4]; 基本数字:

{ 5, 10, 15, 20 10, 15, 20, 25 15, 20, 25, 30 } { 5, 10, 15, 20 10, 15, 20, 25 15, 20, 25, 30 } 应成为:

{ 5, 10, 15, 20, 20, 15, 10, 5 10, 15, 20, 25, 25, 20, 15, 10 15, 20, 25, 30, 30, 25, 20, 15 15, 20, 25, 30, 30, 25, 20, 15 10, 15, 20, 25, 25, 20, 15, 10 5, 10, 15, 20, 20, 15, 10, 5 } { 5, 10, 15, 20, 20, 15, 10, 5 10, 15, 20, 25, 25, 20, 15, 10 15, 20, 25, 30, 30, 25, 20, 15 15, 20, 25, 30, 30, 25, 20, 15 10, 15, 20, 25, 25, 20, 15, 10 5, 10, 15, 20, 20, 15, 10, 5 }
var结果=阵列反射(记分板);
公共静态T[,]阵列反射(T[,]arr)
{
//数组中的行数
int m=arr.GetLength(0);
//数组中的列数
int n=arr.GetLength(1);
var res=新的T[m*2,n*2];

对于(int r=0;rHow是否反转数组会产生更多元素:?另外,您显示了3x4数组而不是4x4h,他意味着转换它。此解决方案的输出是水平和垂直的,但这让我希望
C
更像
Fortran
。这在Fortran中应该是一个1行。您的回答对我帮助很大!谢谢!
var result = ArrayReflection(scoreBoard);       

public static T[,] ArrayReflection<T>(T[,] arr)
{
    // number of rows in array
    int m = arr.GetLength(0);
    // number of columns in array
    int n = arr.GetLength(1);
    var res = new T[m*2, n*2];

    for(int r=0; r<m; r++)
        for(int c=0; c<n; c++)
    {
        res[r,c] = arr[r,c];
        res[r,n + c] = arr[r, n - c - 1];
        res[r + m,c] = arr[m - r - 1, c];
        res[r+m,n+c] = arr[m - r - 1, n - c - 1];   
    }

    return res;     
}