一、题目
给定一个n x m棋盘上面有—条长度为k的贪吃蛇。有些格子是无法通过的墙,在棋盘上表示为#

有的格子是苹果,在棋盘上表示为@

有的格子是空格,在棋盘上表示为.

有的格子是蛇的躯体,在棋盘上表示为数字

给定初始棋盘,其中1为蛇的头,k为蛇的尾部,蛇的头可以向上下左右四个方向移动,但是不能金独碰墙或者自己的躯体。

每移动到一个空格,空格变为蛇的头部1,蛇的其他部位数字+1,蛇的尾部所在格子变为空格(蛇移动了—位)

请问至少移动几步,才能使蛇有能够吃到苹果?

输入:
第一行给出两个用空格分开的数字n和m(1 ≤n, m≤ 15)

接下来给出n行,每行m个字符描述棋盘,#代表墙,.代表空格,@代表苹果,1代表蛇的头,2,3.….以此类推。

保证棋盘不会包含除了""#""。""@"和数字(除了O)以外的字符,且仅会包含一个苹果和—条蛇,蛇的长度在3到9之间。

输出:
-1(不能吃到苹果)或使蛇吃到苹果的最少步数。

样例输入
**4 5
##...
..1#@
432#.
...#.**
样例输出
**4**
二、思路
  • 通过搜索即可,每次搜索判断是否会碰到蛇的身体,然后每次移动改变蛇身体的位置。
三、代码
需要代码私聊!