-5
我的代码随机生成字符'L'到二维数组中,但我需要程序来检查是否已经没有'L',如果它存在,程序应该经过生成过程再次。但是出现了这个问题,因为出现了Stackoverflowexception。有没有人有想法如何改变我的代码,或者如何增加堆栈大小? (我不得不提到,我已经尝试使用Project Properties增加堆栈大小,但是我没有Linker选项,而且我也是编程新手,所以我不知道如何使用editbin或命令) 。提前致谢。增加堆栈大小c#
编辑:
public void Generate()
{
Fill();
Fleet();
}
public void Fleet()
{
Ship2(Utility.R(1,9),Utility.R(1,9),Utility.R(4));
Ship3(Utility.R(1,9),Utility.R(1,9),Utility.R(4));
Ship3(Utility.R(1,9),Utility.R(1,9),Utility.R(4));
Ship4(Utility.R(1,9),Utility.R(1,9),Utility.R(4));
Ship5(Utility.R(1,9),Utility.R(1,9),Utility.R(4));
}
public void Ship2(int x, int y, int r)
{
if (r == 0)
{
CreateShip(x, y);
CreateShip(x, (y + 1));
}
if (r == 1)
{
CreateShip(x, y);
CreateShip(x, (y + -1));
}
if (r == 2)
{
CreateShip(x, y);
CreateShip((x-1), (y));
}
if (r == 3)
{
CreateShip(x, y);
CreateShip((x+1), (y));
}
}
public void CreateShip(int x, int y)
{
if (x <= 9 && y <= 9 && x >= 0 && y >= 0)
{
if (Board[x, y] == 'L')
{
Generate();
}
else
{
Board[x, y] = 'L';
}
}
else
{
Generate();
}
}
这是代码的重要组成部分。
*有谁知道如何更改我的代码*您需要先发布您的代码。 –
向我们展示您的代码会很有帮助。我不认为增加堆栈大小会有所帮助。我很肯定你有一些有错误的最终条件递归。这是这种例外最常见的原因。该算法显示为 –
。那么有人可能有一个想法如何改变它 –