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

📄 ai3view.cpp

📁 五子棋是一种受大众广泛喜爱的游戏
💻 CPP
字号:
// AI1View.cpp : implementation of the CAI3View class
//

#include "stdafx.h"
#include "AI3.h"

#include "AI3Doc.h"
#include "AI3View.h"

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

/////////////////////////////////////////////////////////////////////////////
// CAI3View

IMPLEMENT_DYNCREATE(CAI3View, CScrollView)

BEGIN_MESSAGE_MAP(CAI3View, CScrollView)
	ON_COMMAND(IDM_ViewStepOnly, OnViewStepOnly)
	ON_UPDATE_COMMAND_UI(IDM_ViewStepOnly, OnUpdateViewStepOnly)
	ON_COMMAND(IDM_ViewTreeOnly, OnViewTreeOnly)
	ON_UPDATE_COMMAND_UI(IDM_ViewTreeOnly, OnUpdateViewTreeOnly)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CAI3View construction/destruction

CAI3View::CAI3View()
{
	m_bIsDispAll = true;
}

CAI3View::~CAI3View()
{
}

BOOL CAI3View::PreCreateWindow(CREATESTRUCT& cs)
{
	return CScrollView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CAI3View drawing

void CAI3View::OnDraw(CDC* pDC)
{
	CAI3Doc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	POSITION pos = pDoc->m_DispList.GetHeadPosition();
	if(pos == NULL) return;
	//显示
	int DispX,DispY;
	while(pos)
	{
		CDisplay *Item = (CDisplay *)pDoc->m_DispList.GetNext(pos);
		DispY = (Item->GetCurrentG())*70+10;
		if(m_bIsDispAll) 
		{
		 for(int i=0; i<3; i++)
		 {
		  DispX = (Item->GetCurrentCount())*70+10; 
		  if(Item->GetIsAAnswer()) pDC->SetTextColor(RGB(255,0,0));
		  else pDC->SetTextColor(RGB(0,0,0));
		  for(int j=0; j<3; j++)
		  {
			pDC->Rectangle(DispX-1,DispY-1,DispX+20,DispY+20);
			DataType DataItem = Item->GetDispData(i,j);
			CString DispItem;
			if(DataItem != 0) DispItem.Format("%d ",DataItem);
			else DispItem ="  ";
			pDC->TextOut(DispX, DispY, DispItem);
			DispX += 20;
		  } 
		  DispY += 20;
		 }
		 DispY += 10;
		}
		else
		{
			if(Item->GetIsAAnswer() == false) continue;
			for(int i=0; i<3; i++)
			{
		     DispX = 10; 
		     pDC->SetTextColor(RGB(0,0,0));
     	     for(int j=0; j<3; j++)
			 {
			  pDC->Rectangle(DispX-1,DispY-1,DispX+20,DispY+20);
			  DataType DataItem = Item->GetDispData(i,j);
			  CString DispItem;
			  if(DataItem != 0) DispItem.Format("%d ",DataItem);
			  else DispItem ="  ";
			  pDC->TextOut(DispX, DispY, DispItem);
			  DispX += 20;
			 } 
		     DispY += 20;
			}
		    DispY += 10;
		}
	}
	//判断是否生成滚动条
	CSize sizeTotal;
	sizeTotal.cx = DispX+80;
	sizeTotal.cy = DispY+10;
	SetScrollSizes(MM_TEXT, sizeTotal);
}

void CAI3View::OnInitialUpdate()
{
	CScrollView::OnInitialUpdate();

	CSize sizeTotal;
	sizeTotal.cx = sizeTotal.cy = 100;
	SetScrollSizes(MM_TEXT, sizeTotal);
}

/////////////////////////////////////////////////////////////////////////////
// CAI3View diagnostics
void CAI3View::AssertValid() const
{
	CScrollView::AssertValid();
}

void CAI3View::Dump(CDumpContext& dc) const
{
	CScrollView::Dump(dc);
}

CAI3Doc* CAI3View::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CAI3Doc)));
	return (CAI3Doc*)m_pDocument;
}
/////////////////////////////////////////////////////////////////////////////
// CAI3View message handlers

void CAI3View::OnViewStepOnly() 
{
	this->m_bIsDispAll = FALSE;
	Invalidate();
}

void CAI3View::OnUpdateViewStepOnly(CCmdUI* pCmdUI) 
{
	pCmdUI->SetCheck(!m_bIsDispAll);
}

void CAI3View::OnViewTreeOnly() 
{
	this->m_bIsDispAll = TRUE;
	Invalidate();
}

void CAI3View::OnUpdateViewTreeOnly(CCmdUI* pCmdUI) 
{
	pCmdUI->SetCheck(m_bIsDispAll);
}

⌨️ 快捷键说明

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