资源简介
带蹩马腿功能的马踏棋盘程序,运用了带有回溯功能的递归函数输出所有的路径。运行时间可能较长,打印输出所有的情况需要等待一定的时间。
代码片段和文件信息
#include
#include
#include
#pragma warning(disable:4996)//头文件及宏定义
#define MAXN 10//棋盘的最大尺寸
#define STALL_PIECE 123//蹩马腿棋子
int board[MAXN][MAXN] = { 0 };//初始化棋盘
int moveHorizental[8] = { 21-1-2-2-112 };
int moveVertical[8] = { 1221-1-2-2-1 };//定义马移动的八种方式
int stallPieceNumber;//蹩马腿棋子的数目
/*
功能:检查输入是否符合规范
传入参数:马的横纵坐标 棋盘的大小
返回参数:bool数据类型
*/
bool Check(int x int y int N)
{
if (x < 0 || x >= N || y < 0 || y >= N || board[x][y] != 0) //检查输入坐标是否在棋盘内以及该位置是否已经被走过或有蹩马腿棋子占用
return false;//输入不符合规范
return true;//输入符合规范
}
/*
功能:判断是否被蹩马腿
传入参数:当前位置 下一个位置
返回参数:bool数据类型
*/
bool IsStalled(int currentX int currentY int nextX int nextY)
{
bool flag = false;//有没有被蹩马腿的标志
int deltX = nextX - currentX;
int deltY = nextY - currentY;//计算位置的变化量
bool pieces[4] = { false };//初始假设四个方向均未被蹩马腿
if (board[currentX - 1][currentY] == STALL_PIECE)
pieces[0] = true;//左侧有棋子
else if (board[currentX][currentY + 1] == STALL_PIECE)
pieces[1] = true;//下方有棋子
else if (board[currentX + 1][currentY] == STALL_PIECE)
pieces[2] = true;//右侧有棋子
else if (board[currentX][currentY - 1] == STALL_PIECE)
pieces[3] = true;//上方有棋子
if (pieces[0] && abs(deltY) == 1 && deltX == -2)
flag = true;//左侧被蹩马腿
if (pieces[1] && abs(deltX) == 1 && deltY == 2)
flag = true;//下方被蹩马腿
if (pieces[2] && abs(deltY) == 1 && deltX == 2)
flag = true;//右侧被蹩马腿
if (pieces[3] && abs(deltX) == 1 && deltY == -2)
flag = true;//上方被蹩马腿
return flag;//返回是否被蹩马腿
}
/*
功能:寻找马踏棋盘的路径
传入参数:马的当前位置坐标 棋盘大小 走的步数
返回参数:无
*/
void HorseTraversal(int thisX int thisY int N int stepNumber)
{
int i;//循环控制变量
int nextX nextY;//马的下一个位置的坐标
for (i = 0; i
- 上一篇:基于C语言的短信pdu的编码解码所有资料
- 下一篇:数据结构课设——作业管理系统
相关资源
- C语言嵌入式Modbus协议栈,支持主站和
- C语言封装的HttpClient接口
- C语言课设计算器
- C语言 学生兴趣管理系统
- c语言实现火车订票系统(控制台)源
- 模拟笔记本电脑(C语言实现)
- c语言实现竞技比赛打分系统
- KMP算法C语言程序
- Linux c语言 学生成绩管理系统
- 弹跳的小球(test.c)
- 林锐—高质量C编程
- 基于c语言的通讯录系统
- C语言全套课件与教学资料-哈工大
- 计算机二级C语言真题.docx
- C语言实现 设备信息管理系统
- GBT 28169-2011 嵌入式软件 C语言编码规范
- C语言标准库函数大全.chm
- C语言常用代码(分章节)
- c语言课程设计:客房登记系统源码
- C语言常用算法源代码
- 吕鑫:VS2015之博大精深的0基础C语言视
- c语言文都讲义2020
- c语言课件56883
- C语言推箱子win控制台
- C语言程序设计50例.docx
- 烟花优化算法(c语言版)
- C语言程序设计教材习题参考答案.do
- 数据结构(C语言版)ppt课件,清华,
- c语言编程经典例题100例 word版
- C语言编译器的设计与实现.doc
评论
共有 条评论