命名空间中C#中的字段方法

命名空间中C#中的字段方法,c#,C#,因此,我的代码的目标是在一个数字网格中选取两个点,并计算出当计算网格中距离这两个点最近的每一个点时,with point获得的数字的最大值。在输入这段代码时,我试图使用私有字段变量来保持两个指针的当前位置,但是我收到了字段变量的错误,以及我对构建的网格进行的任何调用 namespace Program { private int xMe; private int yMe; private int zMe; private int xEn; private int yEn; priva

因此,我的代码的目标是在一个数字网格中选取两个点,并计算出当计算网格中距离这两个点最近的每一个点时,with point获得的数字的最大值。在输入这段代码时,我试图使用私有字段变量来保持两个指针的当前位置,但是我收到了字段变量的错误,以及我对构建的网格进行的任何调用

namespace Program
{

private int xMe;

private int yMe;

private int zMe;

private int xEn;

private int yEn;

private int zEn;

private int dif = 0;
public class Castles
{
    public static string Process(uint[,] grid)
    {
        int taxX = 0;
        int taxY = 0;

        for (int i = 0; i < grid.GetLength; i++)
        {
            for(int j = 0; j < grid[i]; j++)
            {
                for(int k = 0; k < grid.GetLength; k++)
                {
                    for(int l = 0; l < grid[k]; l++)
                    {
                        if (distance(i, j, k, l) > 3)
                        {
                            if (grid[i, j] != 0 && grid[k, l] != 0)
                            {
                            for (int m = 0; grid.GetLength; m++)
                            {
                                for (int n = 0; grid[m]; n++)
                                {
                                    if (grid[i, j] != grid[m, n] || grid[k, l] != grid[m, n])
                                    {
                                            if(distance(i,j,m,n) > distance(m, n, k, l))
                                            {
                                                taxX = taxX + distance[m, n];
                                            }
                                            else if(distance(i,j,m,n)< distance(m, n, k, l))
                                            {
                                                taxY = taxY + distance[m, n];
                                            }
                                            else
                                            {

                                            }
                                    }
                                }
                            }
                            if(taxX - taxY > dif)
                                {
                                    xMe = i;
                                    yMe = j;
                                    xEn = k;
                                    yEn = l;
                                    zMe = taxX;
                                    zEn = taxY;
                                    dif = taxX - taxY;
                                }
                        }
                        }
                    }
                }
            }
        }

        return "Your castle at (" + xMe + "," + yMe + ") earns " + zMe + ". Your nemesis' castle at (" + xEn + "," + yEn + ") earns " + zEn + ".";
    }

    public int distance(int x, int y, int a, int b)
    {
        int c = a - x;
        int d = b - y;
        return Math.Sqrt(c ^ 2 + d ^ 2);
    }

    static void Main(string[] args)
    {
        System.Console.WriteLine("");
    }
}
名称空间程序
{
私有int xMe;
私人智力;
私人int zMe;
私人int xEn;
私人日元;
私家禅宗;
私有int-dif=0;
公营城堡
{
公共静态字符串进程(uint[,]网格)
{
int-taxX=0;
int-taxY=0;
对于(int i=0;i3)
{
如果(网格[i,j]!=0&&grid[k,l]!=0)
{
for(int m=0;grid.GetLength;m++)
{
对于(int n=0;网格[m];n++)
{
if(grid[i,j]!=grid[m,n]| | grid[k,l]!=grid[m,n])
{
if(距离(i,j,m,n)>距离(m,n,k,l))
{
taxX=taxX+距离[m,n];
}
else if(距离(i,j,m,n)<距离(m,n,k,l))
{
taxY=taxY+距离[m,n];
}
其他的
{
}
}
}
}
如果(taxX-taxY>dif)
{
xMe=i;
yMe=j;
xEn=k;
日元=l;
zMe=taxX;
zEn=taxY;
dif=taxX-taxY;
}
}
}
}
}
}
}
返回“你在(“+xMe+”,“+yMe+”)的城堡。获得“+zMe+”。你的复仇女神在(“+xEn+”,“+yEn+”)的城堡。获得“+zEn+”;
}
公共整数距离(整数x,整数y,整数a,整数b)
{
int c=a-x;
int d=b-y;
返回Math.Sqrt(c^2+d^2);
}
静态void Main(字符串[]参数)
{
System.Console.WriteLine(“”);
}
}
}


这是我第一次探索c#因此这可能是一个简单的解决方案,但任何帮助都是有用的

只要将字段的定义移到类定义的内部

namespace Program
{    

public class Castles
{
    private int xMe;

    private int yMe;

    private int zMe;

    private int xEn;

    private int yEn;

    private int zEn;

    private int dif = 0;

    public static string Process(uint[,] grid)
    {
        int taxX = 0;
        int taxY = 0;

        for (int i = 0; i < grid.GetLength; i++)
        {
            for(int j = 0; j < grid[i]; j++)
            {
                for(int k = 0; k < grid.GetLength; k++)
                {
                    for(int l = 0; l < grid[k]; l++)
                    {
                        if (distance(i, j, k, l) > 3)
                        {
                            if (grid[i, j] != 0 && grid[k, l] != 0)
                            {
                            for (int m = 0; grid.GetLength; m++)
                            {
                                for (int n = 0; grid[m]; n++)
                                {
                                    if (grid[i, j] != grid[m, n] || grid[k, l] != grid[m, n])
                                    {
                                            if(distance(i,j,m,n) > distance(m, n, k, l))
                                            {
                                                taxX = taxX + distance[m, n];
                                            }
                                            else if(distance(i,j,m,n)< distance(m, n, k, l))
                                            {
                                                taxY = taxY + distance[m, n];
                                            }
                                            else
                                            {

                                            }
                                    }
                                }
                            }
                            if(taxX - taxY > dif)
                                {
                                    xMe = i;
                                    yMe = j;
                                    xEn = k;
                                    yEn = l;
                                    zMe = taxX;
                                    zEn = taxY;
                                    dif = taxX - taxY;
                                }
                        }
                        }
                    }
                }
            }
        }

        return "Your castle at (" + xMe + "," + yMe + ") earns " + zMe + ". Your nemesis' castle at (" + xEn + "," + yEn + ") earns " + zEn + ".";
    }

    public int distance(int x, int y, int a, int b)
    {
        int c = a - x;
        int d = b - y;
        return Math.Sqrt(c ^ 2 + d ^ 2);
    }

    static void Main(string[] args)
    {
        System.Console.WriteLine("");
    }
}
名称空间程序
{    
公营城堡
{
私有int xMe;
私人智力;
私人int zMe;
私人int xEn;
私人日元;
私家禅宗;
私有int-dif=0;
公共静态字符串进程(uint[,]网格)
{
int-taxX=0;
int-taxY=0;
对于(int i=0;i3)
{
如果(网格[i,j]!=0&&grid[k,l]!=0)
{
for(int m=0;grid.GetLength;m++)
{
对于(int n=0;网格[m];n++)
{
if(grid[i,j]!=grid[m,n]| | grid[k,l]!=grid[m,n])
{
if(距离(i,j,m,n)>距离(m,n,k,l))
{
taxX=taxX+距离[m,n];
}
else if(距离(i,j,m,n)<距离(m,n,k,l))
{
taxY=taxY+距离[m,n];
}
其他的
{
}
}
}
}
如果(taxX-taxY>dif)
{
xMe=i;
yMe=j;
xEn=k;
日元=l;
zMe=taxX;
zEn=taxY;
dif=taxX-taxY;
}
}
}
}
}
}
}
返回“你在(“+xMe+”,“+yMe+”)的城堡。获得“+zMe+”。你的复仇女神在(“+xEn+”,“+yEn+”)的城堡。获得“+zEn+”;
}
公共整数距离