骑士之旅
来源:互联网 发布:淘宝精品屋 编辑:程序博客网 时间:2024/04/29 23:01
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
srand( time(NULL) );
int board[8][8];
int accessibility[8][8]={
2,3,4,4,4,4,3,2,
3,4,6,6,6,6,4,3,
4,6,8,8,8,8,6,4,
4,6,8,8,8,8,6,4,
4,6,8,8,8,8,6,4,
4,6,8,8,8,8,6,4,
3,4,6,6,6,6,4,3,
2,3,4,4,4,4,3,2};
memset( board, 0, sizeof(board) );//全部初始化为0
int currentRow=0;
int currentColumn=0;//从左上角开始
int horizontal[8]={2,1,-1,-2,-2,-1,1,2};
int vertical[8]={-1,-2,-2,-1,1,2,2,1};
int count=0;
int moveNumber=0;
int StartRow=currentRow;//起点行
int StartColumn=currentColumn;//起点列
int testRow=0;//测试行
int testColumn=0;//测试列
int priorRow=0;//优先访问行
int priorColumn=0;//优先访问列
int sequence[8];//用随机数产生的移动类型序列
int i=0,j=0;
int minimum;
while ( 1 )
{
minimum=8;
sequence[0]=rand()%8;
i=1;
while ( i<8 )
{
sequence[i]=rand()%8;
for ( j=0; j<i; ++j )
if ( sequence[j] == sequence[i] )
break;
if ( j == i)
++i;
}
StartRow=currentRow;
StartColumn=currentColumn;
for ( i=0; i<8; ++i )
{
moveNumber=sequence[i];
testRow=currentRow+vertical[moveNumber];
testColumn=currentColumn+horizontal[moveNumber];
if ( board[testRow][testColumn] == 0 && testRow>=0
&& testRow<=7 && testColumn>=0 && testColumn<=7 )//终点符合要求
{
if ( accessibility[testRow][testColumn] <= minimum )
{
minimum=accessibility[testRow][testColumn];
priorRow=testRow;
priorColumn=testColumn;
}
}
}
currentRow=priorRow;//马移动到优先访问点上
currentColumn=priorColumn;
if ( currentRow == StartRow && currentColumn == StartColumn )//马未移动
break;
else
{
++count;
board[currentRow][currentColumn]=count;
continue;
}
}
for ( i=0; i<8; ++i )//打印棋盘
{
for ( j=0; j<8; ++j )
printf( "%d/t", board[i][j] );
printf( "/n" );
}
printf( "The horse goes %d steps./n", count );
return 0;
}
- 骑士之旅
- 训练之搜索骑士
- 骑士旅行之迷宫算法
- 骑士归来之夜. Duang~
- 骑士
- 骑士
- 骑士
- 骑士
- 《程序员》算法擂台之骑士聚会问题
- 经典游戏算法之骑士走棋盘
- 经典游戏算法之骑士走棋盘
- 动漫推荐之希德尼娅的骑士
- 回溯算法之骑士旅行问题
- 【魔兽世界】[巫妖王之怒]死亡骑士WWI深入体验(图)
- 数据结构学习之启发式搜索求解骑士周游问题
- 黑马程序员----小游戏代码之“骑士飞行棋”
- 百度开放云骑士之夜hacknight--酱油篇
- uva刷题之路--439 骑士移动
- CSS对表格单元格强制换行和不换行-CSS教程
- 详解WordPress增加文件上传大小 实用
- flex 中通过 RO 调用一个java写的Bean的时候获得IP地址的方法 .也就是获得session 和 request的方法
- 窗口根据屏幕分辨率自动调整大小
- 为什么有些内置视图无法添加到透视图中?
- 骑士之旅
- CodeIgniter表单的验证
- iframe的滚动条
- 设计模式在Eclipse平台中的应用
- iframe自动调整高度
- java原始加密算法
- 写简历
- BLDC_Motor_control_v01 [2010.11.25]
- Internet 浏览器 8 包括兼容性视图功能,显示为较旧的浏览器