?? horseposition.cpp
字號:
// HorsePosition.cpp: implementation of the CHorsePosition class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "WIN馬踏棋盤.h"
#include "HorsePosition.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CHorsePosition::CHorsePosition()
{
}
CHorsePosition::~CHorsePosition()
{
}
void CHorsePosition::SetAbutPosition()//設置相鄰節點
{
m_AbutPosition[1].m_x=m_CurrptrPosition.m_x-1; //北偏左
m_AbutPosition[1].m_y=m_CurrptrPosition.m_y+2;
m_AbutPosition[1].GetMinDistance(); //得到最靠邊的距離
m_AbutPosition[2].m_x=m_CurrptrPosition.m_x-2;//西偏上
m_AbutPosition[2].m_y=m_CurrptrPosition.m_y+1;
m_AbutPosition[2].GetMinDistance();
m_AbutPosition[3].m_x=m_CurrptrPosition.m_x-2;//西偏下
m_AbutPosition[3].m_y=m_CurrptrPosition.m_y-1;
m_AbutPosition[3].GetMinDistance(); //得到最靠邊的距離
m_AbutPosition[4].m_x=m_CurrptrPosition.m_x-1;//南偏左
m_AbutPosition[4].m_y=m_CurrptrPosition.m_y-2;
m_AbutPosition[4].GetMinDistance(); //得到最靠邊的距離
m_AbutPosition[5].m_x=m_CurrptrPosition.m_x+1;//南偏右
m_AbutPosition[5].m_y=m_CurrptrPosition.m_y-2;
m_AbutPosition[5].GetMinDistance(); //得到最靠邊的距離
m_AbutPosition[6].m_x=m_CurrptrPosition.m_x+2;//東偏下
m_AbutPosition[6].m_y=m_CurrptrPosition.m_y-1;
m_AbutPosition[6].GetMinDistance(); //得到最靠邊的距離
m_AbutPosition[7].m_x=m_CurrptrPosition.m_x+2;//東偏上
m_AbutPosition[7].m_y=m_CurrptrPosition.m_y+1;
m_AbutPosition[7].GetMinDistance(); //得到最靠邊的距離
m_AbutPosition[8].m_x=m_CurrptrPosition.m_x+1;//北偏右
m_AbutPosition[8].m_y=m_CurrptrPosition.m_y+2;
m_AbutPosition[8].GetMinDistance(); //得到最靠邊的距離
//根據靠邊的距離進行排列
for(int i=1;i<=8;i++)
for(int j=i+1;j<=8;j++)
{
if(m_AbutPosition[i].m_MinDistance>m_AbutPosition[j].m_MinDistance)
{
//交換
int t=0;
t=m_AbutPosition[i].m_MinDistance;
m_AbutPosition[i].m_MinDistance=m_AbutPosition[j].m_MinDistance;//交換最短距離
m_AbutPosition[j].m_MinDistance=t;
t=m_AbutPosition[i].m_x; //交換x坐標
m_AbutPosition[i].m_x=m_AbutPosition[j].m_x;
m_AbutPosition[j].m_x=t;
t=m_AbutPosition[i].m_y; //交換y坐標
m_AbutPosition[i].m_y=m_AbutPosition[j].m_y;
m_AbutPosition[j].m_y=t;
}//結束交換
}//結束比較
//結束排列
}//結束設置相鄰節點
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -