-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();
}
}
這是代碼的重要組成部分。
*有誰知道如何更改我的代碼*您需要先發布您的代碼。 –
向我們展示您的代碼會很有幫助。我不認爲增加堆棧大小會有所幫助。我很肯定你有一些有錯誤的最終條件遞歸。這是這種例外最常見的原因。該算法顯示爲 –
。那麼有人可能有一個想法如何改變它 –