编程之战 第六十章 生化危机(下)
作者:程序小猿的小说      更新:2019-05-23

  浣熊镇上万米的高空中,两架战机组成的编队眨眼间掠过。

  留给杨成等人的时间不多了。

  “成哥,指挥官发过来了地图”。

  动物学家兼陆战队员科勒文少尉将手机递给杨成,自己则呆在一旁负责警戒。

  他们周边的地面上,躺着好几具尸体。

  都是些被吸引过来的丧尸,然后被科勒文用他最擅长的擒拿格斗术给KO了。

  杨成拿起手机,仔仔细细一看,发现是一个3X5的坐标系。

  [true,false,true]

  [true,false,true]

  [true,false,true]

  [true,true,true]

  [true,false,true]

  他们目前所处的位置,是地图的左上方,坐标(1,1),或者说是第一行第一列。

  而撤离的目的地,处于地图的右上方,坐标(1,3),或者说是第一行第三列。

  true(真)代表该地区是安全的。

  false(假)代表丧尸的聚集区,一旦进入,肯定有去无回。

  现在的关键是得找出一条安全的撤离路线来。

  杨成紧缩眉头,用心思考,丝毫没有被周边的环境所影响。

  程序员的素质在这一刻得到了体现。

  这是一个简单的图论问题,即查找图中两点之间的路径。

  因为这个图本身并不大,所以效率问题暂时不用考虑。

  最快捷,最方便的做法,是从这个出发点开始,执行深度优先遍历。

  在遍历的过程中记录分支(路径)。

  而一旦达到了目的地,就应该停止遍历,返回当前的路径。

  图的深度优先遍历得到的路径,不一定是最短路径。

  但在这个问题上,可以看出,只存在一条可能的路径,也就是得到的这条。

  其实也可以使用广度优先遍历。

  两者唯一的不同是:

  前者使用栈来管理遍历,而后者会使用队列。

  杨成专心致志,很快编写代码,得出了一条安全的路径。

  [down,down,down,right,right,up,up,up]

  “科兄,解出来了,咋们赶紧撤”。

  杨成回过神来,环顾四周。

  然后,他看见方圆几公里的丧尸都在朝这边聚集。

  “呃....”

  杨成举起双手。

  “咋们真的要困死在这里了吗?!”

  “为啥都解出来了,还没半点反应呢?”

  杨成心情糟透了。

  一想到即将被丧尸们分而食之,他就有种想饮弹自尽的冲动。

  “成哥,看那是啥?”

  科勒文手指着半空中。

  只见一头通体漆黑的钢铁巨兽带着降落伞缓缓坠地,发出沉闷的一声巨响。

  这是一辆重达几十吨的重型坦克。

  在这种初级的丧尸面前,就跟绞肉机差不多。

  杨成还在那里一愣。

  那科勒文却是一个翻身上了坦克,打开顶盖,然后冲着杨成喊道:

  “没时间解释了,快上车!”