首页 > 作文

象棋马怎么走

更新时间: 阅读: 评论:0

管理的五大职能-无线猫

象棋马怎么走
2023年3月17日发(作者:家居毯)

实验五:

中国象棋中马的走法。(回溯法)

1.问题描述:

在45的棋盘上已知马的起始坐标(x,y),求马能够返回到起始位置

的不重复的所有不同走法的总数。

问题分析:

(1)读入马的起始位置,进行合法性判断;

(2)从起始位置开始搜索,搜索方法采用深搜,累计总数;

(3)输出结果。

#usual反义词 include

#include

intarray[2][8]={{-1,-1,-2,-2,2,2,1,1},{-2,2,1,-1,1,-1,2,-2}};//表

示马跳的8个方向

intchess[4][5];//表示棋盘,1:表示已经在较早的时候走过,0:则没

inttotal=0;//统计走法的个数

intsx,sy;//(sx,sy)表示马的起始坐标

voidfind_way(intp1,intp2);//回溯的过程

voidmain()

{inti,j;

for(i=0;i<4;i++)

for(j=0;儿童短篇故事 j<5;j++)

chess[i][j]=0;

printf("输入马的起始坐标:n");

scanf("%d",&sx);

scanf("%d",&sy);

printf("sx=%d,sy=%dn",sx,sy);

if千牛怎么上架商品 ((sx<0)||(sx>=4)||(sy<0)||(sy>=5))

printf("ERRORn");

el{

c肉糕 hess[sx][sy]=1;

find_way(sx,sy);//从起始位置开始试探

printf("total=%dn",total);

getcha人生只剩归途 r();

}

}

voidfind_way(intp1,intp2)

{inti,pi,pj;

f小炒鸡 or(i=0;i<8;i++){//向8个方向试探

pi=p1+array[0][i];

pj=p2+array[1][i];

if((sx==pi)&&(sy==pj))

total++;//找到一种走法,(sx,sy)表示起点

elif((pi>=0)&&(pi<4)&&(pj>=0)&&(pj<5)&&(chess[pi][pj]

==0)){//继续试探

chess[pi][pj]=1;

find_way(pi,pj);

chess[pi][pj]=0;

}

}/为自己喝彩作文 /for

}

测试报告

1.输入马的起始(3.4)

2.运行结果

本文发布于:2023-03-17 08:47:18,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/d9ddd55cd3a28bf7d3f6cd1f64ec16a0.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:象棋马怎么走.doc

本文 PDF 下载地址:象棋马怎么走.pdf

下一篇:返回列表
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图