中国象棋跳马路线设计程序

中国象棋跳马路线设计程序,第1张

是不是这题.

骑士游历

【题目描述】

设有一个n*m的棋盘(2<=n<=50,2<=m<=50),如下图,在棋盘上任一点有一个中国象棋马,

马走的规则为:

1.马走日字 2.马只能向右走

任务:当N,M 给出之后,同时给出马起始的位置和终点的位置,试找出从起点到终点的所有路径的数目.

例如:(N=10,M=10),(1,5)(起点),(3,5)(终点)

输出:2(即由(1,5)到(3,5)共有2条路径)

输入格式:n,m,x1,y1,x2,y2(分别表示n,m,起点坐标,终点坐标)

输出格式:路径数目(若不存在从起点到终点的路径,输出0)

【样例输入1】

10 10 1 5 3 5

【样例输出1】

2

程序:

const max=10

dx:array[1..4] of longint=(1,2,1,2)

dy:array[1..4] of longint=(2,1,-2,-1)

var n,m,x1,x2,y1,y2,i,j,sum:longint

board:array[-1..max+2,-1..max+2] of longint

dir:array[0..max*max] of longint

procedure print

begin

if sum>0 then writeln(sum) else writeln(0)

end

procedure search(dep,x,y:longint)

var i:longint

begin

if (x=x2) and (y=y2) then inc(sum) else

for i:=1 to 4 do

if (x+dx[i]<=x2) and (y+dy[i]>=1) and (y+dy[i]<=m)

then

begin

search(dep+1,x+dx[i],y+dy[i])

end

end

begin

readln(n,m,x1,y1,x2,y2)sum:=0

search(1,x1,y1)print

end.

我提供两个功能完善,而且最重要的,我认为算法设计比较好的中国象棋源代码,因为是源码网的,所以可以学习参考下:

http://www.codefans.net/soft/1466.shtml

http://www.codefans.net/soft/1289.shtml


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7744340.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存