00001
00002
00003
00004
00005
00006 #pragma once
00007 #include "LargeInteger.h"
00008
00010 class CSymmetry
00011 {
00012 public:
00013
00015 CSymmetry(int boardSizeX, int boardSizeY, int boardSizeZ);
00016 ~CSymmetry(void);
00017
00019 char* getSymmetry(char *pGameBoard);
00020
00021 private:
00022
00023 void symmetryOriginal();
00024 void symmetryMirrorVertical();
00025 void symmetryMirrorHorizontal();
00026 void symmetryMirrorVerticalHorizontal();
00027 void symmetryRotateRight();
00028 void symmetryRotateRightMirrorVertical();
00029 void symmetryRotateLeft();
00030 void symmetryRotateLeftMirrorVertical();
00031
00032
00033 char *pBoard;
00034 char *pBoardSymmetry;
00035 int boardSizeX, boardSizeY, boardSizeZ;
00036 int boardFieldCount, boardFieldCountPlain;
00037 CLargeInteger *symmetryValue[8];
00038 };