當前位置:編程學習大全網 - 編程軟體 - 關於生物繁殖的c語言編程

關於生物繁殖的c語言編程

這個問題類似於圖形學裏面的渲染四聯通區域的問題,最簡單的做法就是采用遞歸來完成的種子填充算法,每次投食後遍歷壹次二維數組,a[i][j]>0則a[i][j]加1。

判斷該點是否符合繁殖條件。如果符合則向四聯通區域擴張繁殖,然後依次對四聯通區域裏的每壹個點遞歸執行以上邏輯(判斷->擴張)。

下面是偽碼:

array?expandFromSeedNode(array?a,?seedNodeXindex?i,?seedNodeyindex?j)?{

//判斷

if(a[i][j]?==?4)?{

//擴張

if(?i-1?>=?0)?{

a[i-1][j]?=?a[i-1][j]?+?1;

a[i][j]?=?a[i][j]?-?1;

//遞歸

return?expandFromSeedNode(a,?i-1,?j);

}?

if(?i+1?<?n)?{

a[i+1][j]?=?a[i+1][j]?+?1;

a[i][j]?=?a[i][j]?-?1;

return?expandFromSeedNode(a,?i+1,?j);

}?

if(?j-1?>=?0)?{

a[i][j-1]?=?a[i][j-1]?+?1;

a[i][j]?=?a[i][j]?-?1;

return?expandFromSeedNode(a,?i,?j-1);

}?

if(?j+1?>=?0)?{

a[i][j+1]?=?a[i][j+1]?+?1;

a[i][j]?=?a[i][j]?-?1;

return?expandFromSeedNode(a,?i,?j+1);

}?

}?else?{

return?a;

}

}

  • 上一篇:軟件開發:從工具到出版
  • 下一篇:eprom和eeprom區別
  • copyright 2024編程學習大全網