⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 horseposition.cpp

📁 用vc实现的马跳棋盘
💻 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 + -