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# 试图移动太空入侵者&;无法向两个方向移动_C#_Multidimensional Array - Fatal编程技术网

C# 试图移动太空入侵者&;无法向两个方向移动

C# 试图移动太空入侵者&;无法向两个方向移动,c#,multidimensional-array,C#,Multidimensional Array,在一个个人项目上工作,用c语言进行自我开发# 我目前正在使用c#为太空入侵者开发一款控制台应用程序——我决定使用2d阵列来存储我的游戏 我现在的入侵者等级如下,我可以“召唤”入侵者,从左到右移动,然后放下一行,从右到左移动,但它们不会在另一个方向上重复 public void SummonMovingInvaders(int row, int col, Map[,] spaceInvaders) { var checkGameOver = new ConsoleI

在一个个人项目上工作,用c语言进行自我开发#

我目前正在使用c#为太空入侵者开发一款控制台应用程序——我决定使用2d阵列来存储我的游戏

我现在的入侵者等级如下,我可以“召唤”入侵者,从左到右移动,然后放下一行,从右到左移动,但它们不会在另一个方向上重复

    public void SummonMovingInvaders(int row, int col, Map[,] spaceInvaders)
    {
        var checkGameOver = new ConsoleInterface();

        while (checkGameOver.GameOverCheck(spaceInvaders) == false)
        {
            row = 1;
            while (spaceInvaders[row, col].Filled == false)
            {
                //Set up original invaders
                for (int i = 1; i < 3; i++)
                {
                    spaceInvaders[1, i].Type = CellType.Invader;
                }


                for (row = 1; row < 10; row++)
                {
                    for (col = 0; col < 4; col++)
                    {
                        for (int j = 3; j > 0; j--)
                        {
                            if (j == 0)
                            {
                                spaceInvaders[row, col + j].Type = CellType.Empty;
                            }
                            else
                            {
                                spaceInvaders[row, col + j].Type = spaceInvaders[row, col + j - 1].Type;
                            }

                        }
                        Thread.Sleep(500);
                    }

                    //Clear out the row
                    for (int i = 1; i < spaceInvaders.GetLength(1); i++)
                    {
                        spaceInvaders[row, i].Type = CellType.Empty;
                    }

                    row++;

                    for (col = 6; col >= 0; col--)
                    {
                        for (int j = 0; j < 2; j++)
                        {
                            if (col > 0)
                                spaceInvaders[row, col + j - 1].Type = CellType.Invader;
                            else
                                spaceInvaders[row, col + j].Type = CellType.Invader;

                        }
                        Thread.Sleep(500);
                        for (int j = 1; j <= 2; j++)
                        {
                            if (col > 1)
                            {
                                spaceInvaders[row, col].Type = CellType.Empty;
                                spaceInvaders[row, col - 2].Type = spaceInvaders[row, col - 1].Type;
                            }
                            else
                            {
                                break;
                            }
                        }
                    }
                    col = 0;
                }
            }
        }
    }
public void召唤移动入侵者(int行,int列,Map[,]空间入侵者)
{
var checkGameOver=新控制台界面();
while(checkGameOver.GameOverCheck(spaceinvestors)=false)
{
行=1;
while(spaceInvaders[row,col].Filled==false)
{
//建立原始入侵者
对于(int i=1;i<3;i++)
{
太空入侵者[1,i].Type=CellType.Invader;
}
用于(行=1;行<10;行++)
{
用于(列=0;列<4;列++)
{
对于(int j=3;j>0;j--)
{
如果(j==0)
{
SpaceInjectors[row,col+j].Type=CellType.Empty;
}
其他的
{
SpaceInjectors[row,col+j]。类型=SpaceInjectors[row,col+j-1]。类型;
}
}
睡眠(500);
}
//把这一行收拾干净
for(int i=1;i=0;列--)
{
对于(int j=0;j<2;j++)
{
如果(列>0)
太空入侵者[row,col+j-1].Type=CellType.Invader;
其他的
太空入侵者[row,col+j].Type=CellType.Invader;
}
睡眠(500);
对于(int j=1;j 1)
{
SpaceInjectors[row,col].Type=CellType.Empty;
SpaceInjectors[row,col-2]。类型=SpaceInjectors[row,col-1]。类型;
}
其他的
{
打破
}
}
}
col=0;
}
}
}
}

如果不基本上调试整个程序,就很难回答这个问题。但是不,发布所有源代码可能不是答案。这是很难阅读和理解的。你的挑战是减少和完善这个问题。把范围缩小一些。如果你这样做的话,你甚至可以自己解决这个问题。谢谢-我会试一试,看看会发生什么