01: #if !defined(AFX_PUZZLE_H__DC06699E_BD8E_438E_8DAC_C67F2A179503__INCLUDED_)
02: #define AFX_PUZZLE_H__DC06699E_BD8E_438E_8DAC_C67F2A179503__INCLUDED_
03: 
04: #if _MSC_VER > 1000
05: #pragma once
06: #endif // _MSC_VER > 1000

07: 
08: #define NUMPIECES 12
09: #define LASTPIECE 11                        // one piece is preset into the box

10: #define MAXNUMCUBES 6                        // The biggest part has six cubes

11: #define ASYMMETRIC_PIECE 8                // we choose one asymmetric piece to

12:                                                                 // avoid symmetric degeneration 

13:                                                                 // however it does not need to be completely

14:                                                                 // asymmetric (like part number 9)

15: 
16: class CPuzzle  
17: {
18:         int *pMem;                                                        // this will point to the pieces bits

19:         int AsymmetricPieceTotalRotations;
20: 
21: public:
22: 
23:         CPuzzle();
24:         ~CPuzzle();
25: 
26:         void Solve();
27: };
28: 
29: #endif // !defined(AFX_PUZZLE_H__DC06699E_BD8E_438E_8DAC_C67F2A179503__INCLUDED_)