踩方格的问题!C语言求解。

矩阵边界在无穷远处。我们做如下假设:
每走一步,只能从当前方格移动一格,走到某个相邻的方格上;
走过的格子立即塌陷无法再走第二次;
只能向北、东、西三个方向走;
请问:如果允许在方格矩阵上走n步,共有多少种不同方案。2种走法只要有一步不一样 ,即被认为是不同的方案。
输入说明:允许在方格上行走的步数n小于等于20。
有木有人教教我思路Ծ‸Ծ,有思路就好,我用递归但是半天捋不清东西方向的次数应该怎么统计。另:我只会C语言…心塞(´-ωก`)

bfs遍历,从当前点出发,记录路径就行,用容器装下路径