#include <memory.h>
typedef struct
{
int x, y
}item
item move[4] = {{-2,1}, {-1,2}, {1,2}, {2,1}}
int map[5][9], sx, sy
//判断是否在地图中,防止越界
int checkIn(int x, int y)
{
if(x >= 0 &&x <= 4 &&y >= 0 &&y <= 8)
return 1
return 0
}
//输出最终结果
void output()
{
int i, j
for(i = 0i <= 4i++)
{
for(j = 0j <= 8j++)
printf("%d ",map[i][j])
putchar('\n')
}
printf("共计%d步。", map[0][8])
}
//从x y开始寻找能否到达终点,能返回1,不能返回0,step表示当前的步数。
int findPath(int x, int y, int step)
{
int i
map[x][y] = step
//终点
if(x == 0 &&y == 8)
{
output()
return 1
}
//向右边4个方向前进
for(i = 0i <4i++)
if(checkIn(x+move[i].x, y+move[i].y))
if(findPath(x+move[i].x, y+move[i].y, step+1) == 1)
return 1
//四个方向均无法到达终点,回溯并返回0
map[x][y] = 0
return 0
}
int main(int argc, char ** argv)
{
memset(map, 0, sizeof(map))
printf("请输入起点<x,y>\n")
scanf("%d,%d", &sx, &sy)
findPath(sx, sy, 1)
return 0
}
象棋软件好的有:
1、象棋旋风
它采用独特的位棋盘设计,运算速度快,知识更丰富,出棋准确率极高,是研究残局的不二神器。在实战过程中,它攻守平衡,招法纯正,对空头炮、窝心马、多子归边等危险棋型有完善的评估,是业余棋手提高棋力的有力助手,并已被多个象棋专业省队使用。
2、象棋名手
象棋名手是一款付费象棋软件,属于攻杀型棋软,对中国象棋的各种杀形敏感,擅长在激烈的对攻中获取优势,常有弃子控制局势至最终入局的表现;在平稳局面下也能控制局势,寻找机会扩大先手,获取进一步优势;支持名手格式残局库评估库,大幅提高软件对中残局转换的处理能力和残局的棋力。软件曾获得中国计算机博弈锦标赛的多届中国象棋冠军。
3、小虫象棋
收费制中国象棋软件,随着版本的不断更新升级,已采用了更先进的搜索算法,引擎的运行效率提高了200%以上,直接的棋力提升更高达400elo。作为象棋软件排名前十,小虫象棋棋风细腻,能攻善守,对中国象棋的各种典型杀法的审局处理比较到位,能很好地抓住对方的防守漏洞,必要时弃子攻杀,一举擒王。
4、象棋巫师
象棋奇兵基于Bitboard设计,棋力高超稳定,曾荣获第十届奥林匹克中国象棋电脑软件大赛冠军。象棋奇兵在1.02版本后,推出了高级版本,支持多线程运算,为中国象棋软件开先河,其高超的棋力、全面的功能受到棋友的广泛好评。不过以2006年棋软大赛为标志,象棋奇兵的棋力开始逐渐落后于顶尖的象棋旋风、佳佳象棋等,2009年后该软件终止了开发,终极版本为2009比赛版。
5、佳佳象棋
佳佳象棋GGzero从2009年开始崭露头角,并一举夺得当年象棋软件大赛的亚军。佳佳象棋变幻莫测的出招与在对攻局面下的凌厉攻杀让人印象深刻。作为十大中国象棋软件之一,佳佳象棋改编自国象Leela-Zero,可免费使用。它应用了谷歌DeepMind公司提出的alpha-zero深度强化学习算法,是世界上首款达到商业引擎水平的显卡加速象棋引擎。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)