騎士問題 Knight |
缺席
|
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
這是source code
typedef struct
{
int row;
int col;
int move;
} record; int mx[8] = { -1, -2, -2, -1, 1, 2, 2, 1 };
int my[8] = { 2, 1, -1, -2, -2, -1, 1, 2 }; int **b;
void PerformTour( int row, int column, int size );
void InitializeBoard( int boardSize );
void InputCorrect( int row, int col, int boardSize );
void InitializeBoard(int boardSize);
int SpaceAvailable(int row, int col, int size, int moveType);
int OnBoard(int row, int col, int size, int moveType);
int CheckMoves(int &row, int &col, int size, int &count, record &r, stack
|
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
//---------------------------------------------------------------------------
/////////////////////////////////////////////////////////
// CheckMoves(int &, int&, int, int &, record &, stack
|
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
//---------------------------------------------------------------------------
/////////////////////////////////////////////////////////
// void PrintBoard(int boardSize)
// Prints the values of the cords in the shape of the
// table.
/////////////////////////////////////////////////////////
void PrintBoard(int boardSize)
{
int x=0,y=0;
int row,col;
for( row=0; row < boardSize; row )
{
for( col=0; col < boardSize; col )
{
if(b[row][col]==1)
{
TControlCanvas *PanelCanvas = new TControlCanvas;
PanelCanvas->Control=Form1->suiImagePanel1;
PanelCanvas->Brush->Color=clRed;
PanelCanvas->TextOutA(8 col*25,8 row*25,b[row][col]);
Form1->Refresh(); //TCanvas畫面重整
}
else
{
TControlCanvas *PanelCanvas = new TControlCanvas;
PanelCanvas->Control=Form1->suiImagePanel1;
SetBkMode(PanelCanvas->Handle, TRANSPARENT); //去除文字背景色
PanelCanvas->TextOutA(8 col*25,8 row*25,b[row][col]);
delete PanelCanvas;
Form1->Refresh(); //TCanvas畫面重整
}
}
} }
//---------------------------------------------------------------------------
/////////////////////////////////////////////////////////
// int SpaceAvailable(int row, int col, int size, int MoveType
// Checks after the move is on the board if the space
// on the board is not empty returns 1 if empty and
// 0 otherwise.
/////////////////////////////////////////////////////////
int SpaceAvailable(int row, int col, int size, int MoveType)
{
row = mx[MoveType];
col = my[MoveType];
if(b[row][col] == -1)
return 1;
return 0;
}
//---------------------------------------------------------------------------
|
GGL
資深會員 發表:104 回覆:600 積分:335 註冊:2006-11-05 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |