资源简介
罗马尼亚度假问题MFC实现

代码片段和文件信息
#include “stdafx.h“
#include “Manage.h“
Manage::Manage()
{
}
Manage::~Manage()
{
}
int * Manage::Recall(int n int &row int *Result_vec){
row++;
for (int i = 0; i if (Is_Allowed_place(row i Result_vec)){ //如果在row行i列放置不产生冲突
Result_vec[row] = i; //记录下列值
Recall(n row Result_vec); //到下一行放置下一个皇后
}
}
if (row == 0) //没找到解
return NULL;
else if (row >= n) //一种解法回溯结束
return Result_vec;
else //回溯
row--;
}
bool Manage::Is_Allowed_place(int row int col int *Result_vec){
for (int i = 0; i
if ((col == Result_vec[i]) || (abs(row - i) == abs(col - Result_vec[i]))) //如果同列或者对角线
return false;
}
return true;
}
void Manage::Recall(int n int row vector &Result_vec){
row++; //row表示当前递归的行
for (int i = 0; Result_vec.size() != n&&i if (Is_Allowed_place(row i Result_vec)){
Result_vec.push_back(i); //找到当前行合适位置,放入结果数组
Recall(n row Result_vec); //递归
}
}
if (Result_vec.size() == 0 || Result_vec.size() == n) //判断结束标志没
return;
Result_vec.pop_back(); //死路,删除当前行退回上一行
}
bool Manage::Is_Allowed_place(int row int col vectorResult_vec){
for (int i = 0; i if ((col == Result_vec[i]) || (abs(row - i) == abs(col - Result_vec[i])))
return false;
}
return true;
}
void Manage::CSP_alg(int n int **&chessboard_vec int *queen){
int *sign = new int[n];
for (int i = 0; i sign[i] = 0;
}
int num = 0;
while (!CSP_is_end(n chessboard_vec queen)){ //当CSP算法还未结束即总冲突值不为0
num++;
if (num >= n){
for (int i = 0; i sign[i] = 0;
}
num = 0;
}
int min_crash = n; //记录最小冲突
int min_row old_row old_col;
int random = rand() % n;
for (int k = 0 i = random; k if (i == n)
i = 0;
for (int j = 0; j if (chessboard_vec[i][j] min_row = i;
old_col = j;
min_crash = chessboard_vec[i][j];
if (min_crash == 0)
break;
}
}
if (min_crash == 0)
break;
}
sign[old_col] = 1;
old_row = queen[old_col];
queen[old_col] = min_row;
CSP_change_crash(n old_row old_col min_row chessboard_vec queen); //修改同行同列同斜线上格子的冲突值
}
delete sign;
}
void Manage::CSP_Init_place(int n int **&chessboard_vec int *queen){
chessboard_vec = new int *[n];
for (int i = 0; i chessboard_vec[i] = new int[n];
}
for (int i = 0; i queen[i] = rand() % n; //第i列的皇后随机放置在一个位置
for (int j = 0; j chessboard_vec[j][i] = 0;
}
int row_temp1 col_temp1 row_temp2 col_temp2
row_temp3 col_temp3 row_temp4 col_temp4;
for (int i = 0; i row_temp1 =
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 10137 2016-11-30 01:25 N皇后问题\QueenTest\Manage.cpp
文件 1929 2016-11-29 16:06 N皇后问题\QueenTest\Manage.h
文件 109652 2016-11-29 10:15 N皇后问题\QueenTest\QueenTest.aps
文件 2413 2016-11-28 16:17 N皇后问题\QueenTest\QueenTest.cpp
文件 461 2016-11-28 16:17 N皇后问题\QueenTest\QueenTest.h
文件 12746 2016-11-29 10:15 N皇后问题\QueenTest\QueenTest.rc
文件 6317 2016-11-28 19:06 N皇后问题\QueenTest\QueenTest.vcxproj
文件 2427 2016-11-28 19:06 N皇后问题\QueenTest\QueenTest.vcxproj.filters
文件 10801 2016-11-29 10:21 N皇后问题\QueenTest\QueenTestDlg.cpp
文件 1128 2016-11-29 09:21 N皇后问题\QueenTest\QueenTestDlg.h
文件 4074 2016-11-28 16:17 N皇后问题\QueenTest\ReadMe.txt
....... 67777 2013-07-22 01:18 N皇后问题\QueenTest\res\QueenTest.ico
文件 674 2016-11-28 16:17 N皇后问题\QueenTest\res\QueenTest.rc2
文件 2154 2016-11-28 19:21 N皇后问题\QueenTest\resource.h
文件 1133 2016-11-28 22:18 N皇后问题\QueenTest\ShowDlg.cpp
文件 505 2016-11-28 22:18 N皇后问题\QueenTest\ShowDlg.h
文件 142 2016-11-28 16:17 N皇后问题\QueenTest\stdafx.cpp
文件 1578 2016-11-28 16:17 N皇后问题\QueenTest\stdafx.h
文件 234 2016-11-28 16:17 N皇后问题\QueenTest\targetver.h
文件 973 2016-11-28 16:17 N皇后问题\QueenTest.sln
..A..H. 29184 2016-11-30 22:42 N皇后问题\QueenTest.v12.suo
目录 0 2016-11-28 16:17 N皇后问题\QueenTest\res
目录 0 2016-11-30 23:55 N皇后问题\QueenTest
目录 0 2016-11-30 23:55 N皇后问题
----------- --------- ---------- ----- ----
266439 24
相关资源
- 人工智能经典作业,野人与传教士过
- wumpus世界(MFC编写)
- 四子棋智能下棋C语言实现
- LeNet-5神经网络——C源代码
- Python基础教程第3版) 高清PDF
- 基于人工智能的五子棋人机对弈
- 推箱子人工智能算法
- 人工智能小游戏-基于alpha-beta剪枝算法
- 动物识别系统MFC)
- 九宫格程序c++人工智能
- K210使用情况指南以及测试情况
- 人工智能归结反演c++代码
- 人工智能 A算法 九宫格 启发式搜索
- C++实现的人脸识别系统
- Othello黑白棋游戏与AI
- 人工智能的贪食蛇
- Alpha-Beta剪枝算法一字棋源码及实验报
- VC2008 MFC 五子棋 源码 人机对弈 游戏
- 人工智能 A*算法 八数码问题 C++ 报告
- 邮票问题C语言源码
- 人工智能——水壶问题
- 人工智能之动物识别C语言
- 人工智能,五子棋,人工智能,代码
- 人工智能 八数码问题 A*算法 C语言
- 八数码游戏程序人工智能,c++
- 从广度优先搜索深度优先搜索A*算法多
- 人工智能专家系统C语言版
- 人工智能实验报告以及C语言源程序
- 八数码的深度优先算法c++实现
- 人工智能旅行商问题实验报告及C++源
评论
共有 条评论