C# 试图移动太空入侵者&;无法向两个方向移动
在一个个人项目上工作,用c语言进行自我开发# 我目前正在使用c#为太空入侵者开发一款控制台应用程序——我决定使用2d阵列来存储我的游戏 我现在的入侵者等级如下,我可以“召唤”入侵者,从左到右移动,然后放下一行,从右到左移动,但它们不会在另一个方向上重复C# 试图移动太空入侵者&;无法向两个方向移动,c#,multidimensional-array,C#,Multidimensional Array,在一个个人项目上工作,用c语言进行自我开发# 我目前正在使用c#为太空入侵者开发一款控制台应用程序——我决定使用2d阵列来存储我的游戏 我现在的入侵者等级如下,我可以“召唤”入侵者,从左到右移动,然后放下一行,从右到左移动,但它们不会在另一个方向上重复 public void SummonMovingInvaders(int row, int col, Map[,] spaceInvaders) { var checkGameOver = new ConsoleI
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;
}
}
}
}
如果不基本上调试整个程序,就很难回答这个问题。但是不,发布所有源代码可能不是答案。这是很难阅读和理解的。你的挑战是减少和完善这个问题。把范围缩小一些。如果你这样做的话,你甚至可以自己解决这个问题。谢谢-我会试一试,看看会发生什么