尝试从头开始构建一个滑动拼图程序。我想我应该使用puzzle.h,puzzle.c,main.c作为文件。我想使用4-nary树结构,因为最多可以有4个移动。我对下面的结构有一个想法:
#ifndef PUZZLE_H
#define PUZZLE_H
struct Node{
int Node *parent;
int Node *next1;
int Node *next2;
int Node *next3;
int Node *next4;
int calc_heuristic;
void *pdata; }; Node
#endif
在main,puzzle.c中,如何以及在何处将数组赋值编码为* pdata?这看起来是否正确?
答案 0 :(得分:0)
应该是
struct Node *parent;
struct Note *next1;
等等,因为您需要指向树中其他节点的指针。如果pdata
总是一个3x3数组,那么你可以通过声明它来节省一些麻烦,例如。
int puzzleData[3][3]; // current state of the puzzle for this node
如果在编译时不知道该数组的大小,那么在malloc
结构malloc
内存的同时,你将需要Node
内存本身。