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

📄 chesstable.cpp

📁 经典的八皇后问题
💻 CPP
字号:
// ChessTable.cpp: implementation of the CChessTable class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Queen.h"
#include "ChessTable.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CChessTable::CChessTable()
{

m_bFirst=TRUE;
}

CChessTable::~CChessTable()
{
  	dcMem.SelectObject(pOldBitmap);
}
void CChessTable::InitDC(CDC * pdc){
	m_pDC = pdc;
}
void CChessTable::DrawTable(int * ptable,CRect & rt,bool check)
{
	int i,j;
	
	m_nHeight = rt.Height() / 8;
	m_nWidth = rt.Width() / 8;
	if (m_bFirst) {
		m_pBmp.LoadBitmap(IDB_BITMAP1); 
		dcMem.CreateCompatibleDC(m_pDC);  
        m_pBmp.GetBitmap(&bm);

		pOldBitmap = dcMem.SelectObject(&m_pBmp);
	}
    m_pDC->SelectStockObject(BLACK_BRUSH);
	for(i=0;i<8;i++){
			for(j=0;j<8;j++){
				if(((j+i) % 2)==0)
					m_pDC->Rectangle(j*m_nWidth,i*m_nHeight,(j+1)*m_nWidth,(i+1)*m_nHeight);
		}
	}
	
	m_pDC->SelectStockObject(GRAY_BRUSH);
	for(i=0;i<8;i++){
			for(j=0;j<8;j++){
				if(ptable[i]==j+1){
					if(check){
						m_pDC->StretchBlt(j*m_nWidth,i*m_nHeight,m_nWidth,m_nHeight,
						&dcMem,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
					}
					else
						m_pDC->Ellipse(j*m_nWidth,i*m_nHeight,(j+1)*m_nWidth,(i+1)*m_nHeight);
				}
		}
	}

	m_bFirst=FALSE;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -