资源简介
c语言实现5皇后问题,控制台画出5个皇后控制全局,互不相吃的全部摆法
代码片段和文件信息
/*
* 文件名称: 五皇后问题
* 问题描述: 在 8X8 棋盘放置五个皇后 按国际象棋规则判定
* 1.五个皇后不能相互吃
* 2.五个皇后要控制整个棋盘
* 完成日期: 2016/1/8
*/
#include
char qi_pan[64];
char quen[5];
int road_sum;
//////////////////////////////////////第一部分:合理性判定///////////////////////////////////////////
/*
* 函数介绍: 查看某一位置是否被某一皇后控制
* 输入参数: *q 被查看的皇后地址 该地址存放了该皇后在棋盘中的位置
* loca 要查看的位置
* 输出参数: 无
* 返回值 : 返回1 则受控 0 不受控
*/
char con_by (char *qchar loca)
{
//////////////是否在quen控制的行上
if(loca/8 == (*q)/8)
{
return 1; /////////////只要被任意一个控制就表明被控制了
}
////////////////是否在控制的列上
if(loca%8 == (*q)%8)
{
return 1;
}
//////////////////是否在一边的斜线上
if( ((loca/8)-((*q)/8)) == ((loca%8)-(*q)%8) )//斜线的判断采用 dx/dy == 1的方法
{
return 1;
}
///////////////////是否在另一边的斜线上
if(((loca/8)-((*q)/8)) == (((*q)%8) - (loca%8))) //另一边斜线 dx/dy == -1
{
return 1;
}
return 0; //全部不受控才不受控
}
/*
* 函数介绍: 查看某一位置是否是否被至少一个控制
* 输入参数: loca 要查看的位置
* 输出参数: 无
* 返回值 : 返回1 则受控 0 不受控
*/
char con_ed (char loca)
{
if((con_by(quenloca) + con_by(quen + 1loca) +con_by(quen + 2loca) +con_by(quen +3loca) +con_by(quen+4loca)) > 0)
return 1;
return 0;
}
/*
* 函数介绍: 判断是否全局都被控制
* 输入参数: 无
* 输出参数: 无
* 返回值 : 返回1 则受控 0 不受控
*/
char judge (void)
{
char i;
for(i = 0; i < 64; i++)
{
if(con_ed(i) == 0)
return 0;
}
return 1;
}
//////////////////////////////////////第一部分:画出棋盘///////////////////////////////////////////
/*
* 函数介绍: 初始化棋盘 清零qi_pan []
* 输入参数: 无
* 输出参数: 无
* 返回值 : 无
*/
void clr (void)
{
char i;
for(i = 0; i < 64; i++)
{
*(qi_pan + i) = 5; /////////////初始化棋盘 初始值是5
}
}
/*
* 函数介绍: 画出棋盘 更新已经找出的摆法
* 输入参数: 无
* 输出参数: 棋盘 已经找出的摆法 五个皇后的位置
* 返回值 : 无
*/
void show (void)
{
char i;
for(i = 0;i < 5; i++)
{
*(qi_pan + quen[i]) = 6; //
相关资源
- C语言模拟数据库系统DBMS
- 使用C语言产生正态分布的随机数的源
- 89C51双机通信的Proteus仿真及C语言收发
- u2270b解调C语言源码已通过
- 有限元编程
- ISM C语言精简版
- 数据结构的迷宫问题 C语言
- C语言读取、存储、显示BMP图像
- 运筹学中运输问题和分配问题的c语言
- c语言--实现校园导航系统(最短路径
- 矩阵运算c语言单片机可运行
- 凸多边形最优三角剖分C语言编写 算法
- 浙江大学c语言练习题汇总及答案
- 嵌入式图像处理C语言源码
- graphics.h C语言图形学,画星星,画月
- C语言池塘夜降彩色雨附加风效果
- 操作系统 短进程调度算法 c语言文档
- C语言子集的BNF文法描述
- 操作系统课程设计SPOOLING技术C语言版
- 数字滤波器的C语言实现,包括高通、
- C语言 谭浩强 第五版版 书后习题答案
- 纯C语言+libjpeg实现最简单jpeg图片解码
- C语言实现链表,创建、插入、查找、
- 南京大学C语言课件
- C语言知识点完整总结超清版)
- 一个简单的C语言通讯录程序
- 数据结构(c语言版)代码实现
- 51单片机C语言实现GPRS通信
- C语言学生管理系统(带文本数据库)
- C语言库函数 齐全 必备
评论
共有 条评论