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

📄 hanview.cpp

📁 俄罗斯方快的vc++程序设计
💻 CPP
📖 第 1 页 / 共 3 页
字号:
// HanView.cpp : implementation of the CHanView class
//

#include "stdafx.h"
#include "Han.h"

#include "HanDoc.h"
#include "HanView.h"

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

/////////////////////////////////////////////////////////////////////////////
// CHanView

IMPLEMENT_DYNCREATE(CHanView, CView)

BEGIN_MESSAGE_MAP(CHanView, CView)
	//{{AFX_MSG_MAP(CHanView)
	ON_WM_KEYDOWN()
	ON_COMMAND(ID_START, OnStart)
	ON_WM_TIMER()
	ON_COMMAND(ID_ONE, OnOne)
	ON_COMMAND(ID_TWO, OnTwo)
	ON_COMMAND(ID_THERE, OnThere)
	ON_COMMAND(ID_FOUR, OnFour)
	ON_COMMAND(ID_FIVE, OnFive)
	ON_COMMAND(ID_SIX, OnSix)
	ON_COMMAND(ID_SEVEN, OnSeven)
	ON_COMMAND(ID_EIGHT, OnEight)
	ON_COMMAND(ID_NINE, OnNine)
	ON_COMMAND(ID_TEN, OnTen)
	ON_COMMAND(ID_BREAK, OnBreak)
	ON_COMMAND(ID_BEGIN, OnBegin)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CHanView construction/destruction

CHanView::CHanView()
{
	// TODO: add construction code here
//------------------------------------------------------------------//
	 y=0;
	 x=0;
     m_sudu=1;
	 m=7;
	 n=0;
     m_rcetsudu=CRect(400,70,600,90);
     m_rectfen=CRect(400,120,600,140);
     defen=0;
	 m_rectyouxi=CRect(200,10,300,310);
	 time_t timer;
	 time(&timer);
	 srand((unsigned int)timer);
//------------------------------------------------------------------//
	 pandiantuxing=0;
//------------------------------------------------------------------//
	 m_tu[30][0]=1;m_tu[30][1]=1;m_tu[30][2]=1;m_tu[30][3]=1;
	 m_tu[30][4]=1;m_tu[30][5]=1;m_tu[30][7]=1;m_tu[30][8]=1; 
     m_tu[30][6]=1;m_tu[30][9]=1;m_tu[30][10]=1;
//------------------------------------------------------------------//    
     m_tu[0][0]=1;m_tu[1][0]=1;m_tu[2][0]=1;m_tu[3][0]=1; 
     m_tu[4][0]=1;m_tu[5][0]=1;m_tu[6][0]=1;m_tu[7][0]=1; 
     m_tu[8][0]=1;m_tu[9][0]=1;m_tu[10][0]=1;m_tu[11][0]=1;
	 m_tu[12][0]=1;m_tu[13][0]=1;m_tu[14][0]=1; m_tu[15][0]=1;
	 m_tu[16][0]=1;m_tu[17][0]=1;m_tu[18][0]=1; m_tu[19][0]=1;
	 m_tu[20][0]=1;m_tu[21][0]=1;m_tu[22][-0]=1;m_tu[23][0]=1;
     m_tu[24][0]=1;m_tu[25][0]=1; m_tu[26][0]=1;m_tu[27][0]=1;
     m_tu[28][0]=1;m_tu[29][0]=1; m_tu[30][0]=1;
//------------------------------------------------------------------//
}

CHanView::~CHanView()
{
}

BOOL CHanView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CHanView drawing

void CHanView::OnDraw(CDC* pDC)
{
	CHanDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
//-----------------------------------------------------------------//	
	//画边框
	CPen* oldPen1;
	CPen penRed(PS_SOLID,4,RGB(225,0,0));
	oldPen1=pDC->SelectObject(&penRed);
	pDC->Rectangle(210,10,301,311);
//-----------------------------------------------------------------//
    //输出速度
	CString weisudu;
	weisudu.Format("%d",m_sudu);
	pDC->TextOut(400,50,"速度:");
	pDC->TextOut(410,70,weisudu);
//-----------------------------------------------------------------//
    //输出得分
    CString fen;
	fen.Format("%d",defen);
	pDC->TextOut(400,100,"得分:");
	pDC->TextOut(410,120,fen);
//-----------------------------------------------------------------//
 	for(int i=0;i<30;i++) 
	{for(int j=0;j<10;j++)
		{if(m_tu[i][j]==1){m_tu[i][j]=1;}
         else m_tu[i][j]=0;}
	}
//-----------------------------------------------------------------//	
   //画图形
	if(m==0&&n==0)
	{m_tu[x+0][y+4]=1;m_tu[x+0][y+5]=1;
	m_tu[x+0][y+6]=1;m_tu[x+0][y+7]=1;}
    if(m==0&&n==2)
	{m_tu[x+0][y+4]=1;m_tu[x+0][y+5]=1;
	m_tu[x+0][y+6]=1;m_tu[x+0][y+7]=1;}
	if(m==0&&n==1)
	{m_tu[x+0][y+4]=1;m_tu[x+1][y+4]=1;
	m_tu[x+2][y+4]=1;m_tu[x+3][y+4]=1;}
    if(m==0&&n==3)
	{m_tu[x+0][y+4]=1;m_tu[x+1][y+4]=1;
	m_tu[x+2][y+4]=1;m_tu[x+3][y+4]=1;}
	 if(m==1)
	{m_tu[x+0][y+4]=1;m_tu[x+1][y+4]=1;
	m_tu[x+0][y+5]=1;m_tu[x+1][y+5]=1;}
	if(m==2&&n==0)
	{m_tu[x+0][y+5]=1;m_tu[x+1][y+5]=1;
	m_tu[x+1][y+4]=1;m_tu[x+1][y+6]=1;}
	if(m==2&&n==1)
	{m_tu[x+0][y+4]=1;m_tu[x+1][y+4]=1;
	m_tu[x+2][y+4]=1;m_tu[x+1][y+5]=1;}
	if(m==2&&n==2)
	{m_tu[x+0][y+4]=1;m_tu[x+0][y+5]=1;
	m_tu[x+0][y+6]=1;m_tu[x+1][y+5]=1;}
	if(m==2&&n==3)
	{m_tu[x+0][y+5]=1;m_tu[x+1][y+4]=1;
	m_tu[x+2][y+5]=1;m_tu[x+1][y+5]=1;}
	if(m==3&&n==0)
	{m_tu[x+0][y+4]=1;m_tu[x+1][y+4]=1;
	m_tu[x+1][y+6]=1;m_tu[x+1][y+5]=1;}
	 if(m==3&&n==1)
	{m_tu[x+0][y+4]=1;m_tu[x+1][y+4]=1;
	m_tu[x+2][y+4]=1;m_tu[x+0][y+5]=1;}
	if(m==3&&n==2)
	{m_tu[x+0][y+4]=1;m_tu[x+1][y+6]=1;
	m_tu[x+0][y+6]=1;m_tu[x+0][y+5]=1;}
	if(m==3&&n==3)
	{m_tu[x+0][y+5]=1;m_tu[x+1][y+5]=1;
	m_tu[x+2][y+4]=1;m_tu[x+2][y+5]=1;}
    if(m==4&&n==0)
	{m_tu[x+0][y+4]=1;m_tu[x+1][y+4]=1;
	m_tu[x+0][y+6]=1;m_tu[x+0][y+5]=1;}
    if(m==4&&n==1)
	{m_tu[x+0][y+4]=1;m_tu[x+1][y+5]=1;
	m_tu[x+2][y+5]=1;m_tu[x+0][y+5]=1;}
	if(m==4&&n==2)
	{m_tu[x+0][y+6]=1;m_tu[x+1][y+4]=1;
	m_tu[x+1][y+6]=1;m_tu[x+1][y+5]=1;}
    if(m==4&&n==3)
	{m_tu[x+0][y+4]=1;m_tu[x+1][y+4]=1;
	m_tu[x+2][y+4]=1;m_tu[x+2][y+5]=1;}
    if(m==5&&n==0)
	{m_tu[x+1][y+5]=1;m_tu[x+1][y+4]=1;
	m_tu[x+0][y+6]=1;m_tu[x+0][y+5]=1;}
    if(m==5&&n==1)
	{m_tu[x+0][y+4]=1;m_tu[x+1][y+4]=1;
	m_tu[x+2][y+5]=1;m_tu[x+1][y+5]=1;}
    if(m==5&&n==2)
	{m_tu[x+1][y+5]=1;m_tu[x+1][y+4]=1;
	m_tu[x+0][y+6]=1;m_tu[x+0][y+5]=1;}
    if(m==5&&n==3)
	{m_tu[x+0][y+4]=1;m_tu[x+1][y+5]=1;
	m_tu[x+2][y+5]=1;m_tu[x+1][y+4]=1;}
    if(m==6&&n==0)
	{m_tu[x+0][y+4]=1;m_tu[x+1][y+6]=1;
	m_tu[x+0][y+5]=1;m_tu[x+1][y+5]=1;}
    if(m==6&&n==1)
	{m_tu[x+2][y+4]=1;m_tu[x+1][y+4]=1;
	m_tu[x+0][y+5]=1;m_tu[x+1][y+5]=1;}
    if(m==6&&n==2)
	{m_tu[x+0][y+4]=1;m_tu[x+1][y+6]=1;
	m_tu[x+0][y+5]=1;m_tu[x+1][y+5]=1;}
    if(m==6&&n==3)
	{m_tu[x+2][y+4]=1;m_tu[x+1][y+4]=1;
	m_tu[x+0][y+5]=1;m_tu[x+1][y+5]=1;}
//-----------------------------------------------------------------//
if(pandiantuxing==1)
	{
		for(int mm=29;mm>=0;mm--)
		{		
		    if(m_tu[mm][1]==1&&m_tu[mm][2]==1&&	m_tu[mm][3]==1&&
		     m_tu[mm][4]==1&&m_tu[mm][5]==1&&m_tu[mm][6]==1&&
		      m_tu[mm][7]==1&&m_tu[mm][8]==1&&m_tu[mm][9]==1)
			{m_tu[mm][1]=0;m_tu[mm][2]=0;m_tu[mm][3]=0;
		      m_tu[mm][4]=0;m_tu[mm][5]=0;m_tu[mm][6]=0;
		     m_tu[mm][7]=0;m_tu[mm][8]=0;m_tu[mm][9]=0;
			defen=defen+1;
			Invalidate();
			}
		}
	}
	
if(pandiantuxing==1)
	{  
	 for(int qq=29;qq>0;qq--)
	 {  if(m_tu[qq][1]==0&&m_tu[qq][2]==0&&m_tu[qq][3]==0&&
		    m_tu[qq][4]==0&&m_tu[qq][5]==0&&m_tu[qq][6]==0&&
		    m_tu[qq][7]==0&&m_tu[qq][8]==0&&m_tu[qq][9]==0)
		 {if(m_tu[qq-1][1]==1){m_tu[qq-1][1]=0;m_tu[qq][1]=1;}
          if(m_tu[qq-1][2]==1){m_tu[qq-1][2]=0;m_tu[qq][2]=1;}
		  if(m_tu[qq-1][3]==1){m_tu[qq-1][3]=0;m_tu[qq][3]=1;}
          if(m_tu[qq-1][4]==1){m_tu[qq-1][4]=0;m_tu[qq][4]=1;}
		  if(m_tu[qq-1][5]==1){m_tu[qq-1][5]=0;m_tu[qq][5]=1;}
          if(m_tu[qq-1][6]==1){m_tu[qq-1][6]=0;m_tu[qq][6]=1;}
		  if(m_tu[qq-1][7]==1){m_tu[qq-1][7]=0;m_tu[qq][7]=1;}
          if(m_tu[qq-1][8]==1){m_tu[qq-1][8]=0;m_tu[qq][8]=1;}					  
		  if(m_tu[qq-1][9]==1){m_tu[qq-1][9]=0;m_tu[qq][9]=1;}}
	 }		 
  }

	
if(pandiantuxing==1)
	{  
	 for(int qq=29;qq>0;qq--)
	 {  if(m_tu[qq][1]==0&&m_tu[qq][2]==0&&m_tu[qq][3]==0&&
		    m_tu[qq][4]==0&&m_tu[qq][5]==0&&m_tu[qq][6]==0&&
		    m_tu[qq][7]==0&&m_tu[qq][8]==0&&m_tu[qq][9]==0)
		 {if(m_tu[qq-1][1]==1){m_tu[qq-1][1]=0;m_tu[qq][1]=1;}
          if(m_tu[qq-1][2]==1){m_tu[qq-1][2]=0;m_tu[qq][2]=1;}
		  if(m_tu[qq-1][3]==1){m_tu[qq-1][3]=0;m_tu[qq][3]=1;}
          if(m_tu[qq-1][4]==1){m_tu[qq-1][4]=0;m_tu[qq][4]=1;}
		  if(m_tu[qq-1][5]==1){m_tu[qq-1][5]=0;m_tu[qq][5]=1;}
          if(m_tu[qq-1][6]==1){m_tu[qq-1][6]=0;m_tu[qq][6]=1;}
		  if(m_tu[qq-1][7]==1){m_tu[qq-1][7]=0;m_tu[qq][7]=1;}
          if(m_tu[qq-1][8]==1){m_tu[qq-1][8]=0;m_tu[qq][8]=1;}					  
		  if(m_tu[qq-1][9]==1){m_tu[qq-1][9]=0;m_tu[qq][9]=1;}}
	 }
}
	
if(pandiantuxing==1)
	{  
	 for(int qq=29;qq>0;qq--)
	 {  if(m_tu[qq][1]==0&&m_tu[qq][2]==0&&m_tu[qq][3]==0&&
		    m_tu[qq][4]==0&&m_tu[qq][5]==0&&m_tu[qq][6]==0&&
		    m_tu[qq][7]==0&&m_tu[qq][8]==0&&m_tu[qq][9]==0)
		 {if(m_tu[qq-1][1]==1){m_tu[qq-1][1]=0;m_tu[qq][1]=1;}
          if(m_tu[qq-1][2]==1){m_tu[qq-1][2]=0;m_tu[qq][2]=1;}
		  if(m_tu[qq-1][3]==1){m_tu[qq-1][3]=0;m_tu[qq][3]=1;}
          if(m_tu[qq-1][4]==1){m_tu[qq-1][4]=0;m_tu[qq][4]=1;}
		  if(m_tu[qq-1][5]==1){m_tu[qq-1][5]=0;m_tu[qq][5]=1;}
          if(m_tu[qq-1][6]==1){m_tu[qq-1][6]=0;m_tu[qq][6]=1;}
		  if(m_tu[qq-1][7]==1){m_tu[qq-1][7]=0;m_tu[qq][7]=1;}
          if(m_tu[qq-1][8]==1){m_tu[qq-1][8]=0;m_tu[qq][8]=1;}					  
		  if(m_tu[qq-1][9]==1){m_tu[qq-1][9]=0;m_tu[qq][9]=1;}}
	 }
}
 	
if(pandiantuxing==1)
	{  
	 for(int qq=29;qq>0;qq--)
	 {  if(m_tu[qq][1]==0&&m_tu[qq][2]==0&&m_tu[qq][3]==0&&
		    m_tu[qq][4]==0&&m_tu[qq][5]==0&&m_tu[qq][6]==0&&
		    m_tu[qq][7]==0&&m_tu[qq][8]==0&&m_tu[qq][9]==0)
		 {if(m_tu[qq-1][1]==1){m_tu[qq-1][1]=0;m_tu[qq][1]=1;}
          if(m_tu[qq-1][2]==1){m_tu[qq-1][2]=0;m_tu[qq][2]=1;}
		  if(m_tu[qq-1][3]==1){m_tu[qq-1][3]=0;m_tu[qq][3]=1;}
          if(m_tu[qq-1][4]==1){m_tu[qq-1][4]=0;m_tu[qq][4]=1;}
		  if(m_tu[qq-1][5]==1){m_tu[qq-1][5]=0;m_tu[qq][5]=1;}
          if(m_tu[qq-1][6]==1){m_tu[qq-1][6]=0;m_tu[qq][6]=1;}
		  if(m_tu[qq-1][7]==1){m_tu[qq-1][7]=0;m_tu[qq][7]=1;}
          if(m_tu[qq-1][8]==1){m_tu[qq-1][8]=0;m_tu[qq][8]=1;}					  
		  if(m_tu[qq-1][9]==1){m_tu[qq-1][9]=0;m_tu[qq][9]=1;}}
	 }
	  if(x<5)
	  { KillTimer(0);
       for(int ee=0;ee<30;ee++)
	   {for(int rr=0;rr<10;rr++){m_tu[ee][rr]=1;}}
	   MessageBox("Game Over");
      Invalidate();
	  }
	  
	  x=0;y=0; 
	  m=rand()%6+0;
	  if(x==0)
	  {pandiantuxing=0;
	  }
	}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
//画方格
	
	//画灰方格
    CPen* oldPen3;
	CPen penHui(PS_SOLID,1,RGB(150,150,150));
	oldPen3=pDC->SelectObject(&penHui);
	CBrush* oldBrush2;
	CBrush brushHui(RGB(150,150,150));
	oldBrush2=pDC->SelectObject(&brushHui);
    for(int ii=0;ii<30;ii++) 
	{
		for(int jj=1;jj<10;jj++)
	  {	
	     if(m_tu[ii][jj]==0){pDC->Rectangle(200+jj*10,
			 10+ii*10,210+jj*10,20+ii*10);}}
	}

    //画黑红方格
	CPen* oldPen2;
	CPen penGreen(PS_SOLID,1,RGB(100,130,0));
	oldPen2=pDC->SelectObject(&penGreen);
	CBrush* oldBrush1;
	CBrush brushBlack(RGB(0,0,0));
	oldBrush1=pDC->SelectObject(&brushBlack);
     
	for(int iii=0;iii<30;iii++) 
	{  
		for(int jjj=1;jjj<10;jjj++)
	   {	
			if(m_tu[iii][jjj]==1)
			{pDC->Rectangle(200+jjj*10,10+iii*10,210+jjj*10,20+iii*10);}
	   }
	}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
}

/////////////////////////////////////////////////////////////////////////////
// CHanView printing

BOOL CHanView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CHanView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CHanView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CHanView diagnostics

⌨️ 快捷键说明

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