资源简介
八数码 C实现。A*,逆转棋子,棋子与目标局不符总数,棋子移动到目标局所需步数总数等等
代码片段和文件信息
#include
#include
#include
#include
void Copy_node(struct node *p1struct node *p2);
void Calculate_f(int deepthstruct node *pint way);
void Add_to_open(struct node *p);
void Add_to_closed(struct node *p);
void Remove_p(struct node *namestruct node *p);
int Test_A_B(struct node *p1struct node *p2);
struct node * Solution_Astar(struct node *pint way);
void Expand_n(struct node *pint way);
struct node * Search_A(struct node *namestruct node *temp);
void Print_result(struct node *p);
/* 定义8数码的节点状态 */
typedef struct node
{
int s[3][3]; //当前8数码的状态
int i_0; //当前空格所在行号
int j_0; //当前空格所在列号
int f; //当前代价值
int d; //当前节点深度
int h; //启发信息,采用数码“不在位”距离和
struct node *father; //指向解路径上该节点的父节点
struct no
评论
共有 条评论