在C中滑动拼图解算器

时间:2014-03-08 03:50:57

标签: c

尝试从头开始构建一个滑动拼图程序。我想我应该使用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?这看起来是否正确?

1 个答案:

答案 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内存本身。