我必須創建10X10板和5艘各有2,3,3,4,5的長度。船舶不應該相互重疊,它們應該在網格內(10x10),並且它們只應該是垂直或水平的。我該如何放置戰艦遊戲的船隻?
我一直在爲它工作了將近兩天,迄今爲止唯一能做的事情是在10x10電路板上製作4個水平重疊船隻,長度爲2,3,4,5。
所以我卡住的部分如下: 1)我讓船隻在網格內,但它們重疊。 2)我可以製造4艘船,每艘2,3,4,5長,但不能做3次發生兩次。 3)我只能做水平排列不垂直。我希望這艘船可以隨機垂直或水平。
所以,我寫的代碼如下:
{
matrix = zeros(10,10);
row = randi(size(matrix, 1),1,1); %row number
col = randi(size(matrix, 2),1,1); %column number
for i=2:5
while col(1,1)+i-1>10 % Checking if it is within grid
row = randi(size(matrix, 1),1,1); %row number
col = randi(size(matrix, 2),1,1); %column number
end
matrix(row,col:col+i-1)=i;
row = randi(size(matrix, 1),1,1); %row number
col = randi(size(matrix, 2),1,1); %column number
end
matrix
}
我不能拿出任何解決方案。我非常感謝提前的幫助。
我的想法的順序是如下:檢查船舶網格內 - >檢查船舶重疊 - >如果是重疊的,作出新的行和列 - >檢查船舶網格內(回開頭)。我不知道如何將這些句子放入循環中 – Matmaster