• 大小: 2KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-01-03
  • 语言: C/C++
  • 标签: vc++  跳马程序  

资源简介

跳马问题: 设计一个国际象棋的跳马演示程序, 基本要求:将马随机放进8*8的棋盘内,按马的行走规则,每个方格进入一次. 走遍64个方格,将数字依次填入8*8个方格内,并输出. 较高要求:1.求出从某一起点出发的多条以致全部行走路线. 2.每次选择位置的 "最佳策略 ",尽量减少回溯次数

资源截图

代码片段和文件信息

#include 
using namespace std;

struct info 
{
int xyout;
};
const int dx[8]={-2-2-1-1 1 1 2 2};
const int dy[8]={-1 1-2 2-2 2-1 1};
int board[8][8];

int outlet(int xint y)
{
 int ct=0;
 for(int i=0;i<8;++i)
 {
  if(x+dx[i]<0 || y+dy[i]<0 || x+dx[i]>=8  
 || y+dy[i]>=8 || board[x+dx[i]][y+dy[i]])
  continue;
  else ++ct;
 }
 return ct;
}//计算(xy)的出口数

void sort(info *pint n)
{
 for(int i=n-1;i>0;--i)
  if(p[i].out   swap(p[i]p[i-1]);
  else break;
}//按出口数由小到大排序

bool search(int xint yint step)
{
 if(board[x][y]) 
 return false;
 if(step==8*8)
 {
  board[x][y]=step;
  return true;
 }
 else
 {
  board[x][y]=step;
  int ij; 
  info dir[8];
  for(i=j=0;i<8;++i)
   if(x+dx[i]<0 || y+dy[i]<0 || x+dx[

评论

共有 条评论