• 大小: 18KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-01-01
  • 标签:

资源简介

八数码 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

评论

共有 条评论

相关资源