请问一个 C++的算法有关问题!

请教一个 C++的算法问题!!!急
模拟森林受到寄生虫的困扰过程:
  寄生虫困扰感染的树木,造成森林树木落叶。
  落叶树木从森林移除,然后在移除的地方种植新的树木,
  反过来新的数目又可能被寄生虫感染。
以下三个规则定义的森林环境中的简单模型:
1. 受感染的树木第二年变成落叶树木。
2. 落叶树木第二年变成绿色树木。
3. 疫区树木次年感染其北部,南部,东部和西部的邻进绿色树木。

请问各位感染东西南北的树木这个算法应该怎么实现啊??小弟想了很久都觉得不恰当


------解决方案--------------------
森林是一个二维数组a,每棵树是一个元素,3个值 0-绿色树木 1-受感染的树 2-落叶树木(如果所谓的疫区树木就是受感染的树的话)。
假设 a(i,j)= 1,接下来a(i,j)=2,
a(i-1,j)= a(i+1,j ) = a(i,j-1) = a(i,j+1) = 1(如果这4颗树都是绿色树木,即为0),若有等于1的,则递归下去;若有等于2,则等于0??

问题不太好理解。