diff --git a/1-2 b/1-2 new file mode 100644 index 0000000..62e0bc3 --- /dev/null +++ b/1-2 @@ -0,0 +1,43 @@ +#include +#include +#include +#include + +#define N 3 // 定义拼图的维度,这是一个3x3的拼图 + +typedef struct Node { + int puzzle[N][N]; // 存储拼图状态的数组 + struct Node* parent; // 指向父节点的指针,用于追踪路径 + int f, g, h; // A*算法中的 f, g, h 值 +} Node; + +// 创建新的拼图节点 +Node* createNode(int puzzle[N][N]) { + Node* newnode = (Node*)malloc(sizeof(Node)); + //请实现该函数 + int i, j; + for (i = 0; i < N; i++) { + for (j = 0; j < N; j++) { + newNode->puzzle[i][j] = puzzle[i][j]; + } + } + newNode->parent = NULL; + newNode->f = 0; + newNode->g = 0; + newNode->h = 0; + return newNode; +} + +// 检查两个拼图状态是否相同 +bool isSamePuzzle(int a[N][N], int b[N][N]) { + //相同则返回true,否则返回false + int i, j; + for (i = 0; i < N; i++) { + for (j = 0; j < N; j++) { + if (a[i][j] != b[i][j]) { + return false; + } + } + } + return true; +} \ No newline at end of file