#ifndef	__Think_h__
#define	__Think_h__

extern "C"
{
#include "MyDefine.h"

void loadGame();
void getAnswer();
void getQuestion();
bool readFile(char* fileName);
bool writeFile(char* fileName);
void moveBoard(char from, char to);
void handleAnswer();
void handleQuestion();
void handleQuestionPare();
char* writeStr(char *str);
bool readStr(char *str);
bool readStrBoard(char *str);
char* writeStrAnswer(char *str);
void getCountQuestion();
void handleQuestions();
void handleQuestionPares();

void initialCommon();
void initialSodoku();
void initialSosum();
void initialSopare();
void initialSomix();
void initialJigsaw();
void movePare(char from, char to);
void moveKilpare(char from, char to);
void moveSum(char from, char to);
void moveIdx(char from, char to);
void moveHead(char from, char to);
void moveUniq(char from, char to);
void moveSaw(char from, char to);
void moveEndPoint(char from, char to);
void getEndPoint();
void updateIdxShift(int grid, bool flagIntoEditing);
void updateIdxCtrl(int grid, bool flagIntoEditing);
void terminateSumEdit();
bool handleUnify();
void updateHeadUniq();
void flushSosumLeft();
void handleAnswerPare();
void handleAnswerSum();
bool initAreaPare();
void getAnswerPare();
void getAnswerSum();
void mixupNumbers();
void getColorSaw();
void updateSawShift(int grid);
void updateSawCtrl(int grid);
void terminateSawEdit();
void flushJigsawLeft();
void moveColorSaw(char from, char to);
void setInitSaw();
void cutEraseSaw(int eraseNo);
void initialSoextra();
void terminateExtraEdit();
void updateExtraShift(int grid);
void updateExtraCtrl(int grid);
void moveExtra(char from, char to);
void handleAnswerMix();
int legalCheckAll();
bool readFileR(char* fileName);
bool getFinishAll();
int finishCheckAll();
}
#endif
