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

📄 game.cpp

📁 这是一个俄罗斯方块的游戏
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// GAME.cpp: implementation of the GAME class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "俄罗斯方块.h"
#include "GAME.h"

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

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


GAME::GAME()
{
    JoySpeed=50;
	IsPlayMid=FALSE;
	GameHasOver=FALSE;
	HelpData.Format("");
	Count=100;
    Score=0;
	OldScore=0;
    Floor=0;
    Level=1;
    DelBoxNum=0;
	strcpy(MidName,"");
	MoveWave=FALSE;
    BackMid=FALSE;
	strcpy(MidName,"");
	NextBoxNum=0;
	NextBoxPosition=0;
	GamePause=FALSE;
	GAME::KEYUP=TRUE;
	GAME::PassStage=FALSE;
	GAME::StartGame=FALSE;
	GAME::BeginRow=0;
	GAME::EndRow=0;
	GAME::Speed=(9-Level)*30+30;
	GAME::IsDroping=FALSE;

	GAME::BackColor=RGB(0,0,0);
	bkbrush=CreateSolidBrush(BackColor);

	Movexy.x=7;Movexy.y=0;
	GAME::BoxNum=0;
	GAME::BoxPosition=0;
	for(int i=0;i<16;i++)
	for(int j=0;j<25;j++)
	{
	*(*(BoxStyle+i)+j)=FALSE;
	*(*(BoxRgb+i)+j)=RGB(0,0,0);
	}
	//以下是名次数据
	strcpy(PlayDat.Name,"");
  	strcpy(PlayDat.Floor,"");
	strcpy(PlayDat.Score,"");

	for(i=0;i<5;i++)
	{
		strcpy(Order[i].Name,"");
	  	strcpy(Order[i].Floor,"");
	    strcpy(Order[i].Score,"");
	}
	OrderNum=0;
	//从文件读取数据
	LoadDat();
	//以下是各方块数据
	GAME::Standard=TRUE;
	MaxNum=8;
	for(i=0;i<MaxNum;i++)
	for(int j=0;j<4;j++)
	for(int ii=0;ii<4;ii++)
	for(int jj=0;jj<4;jj++)
	MoveBox[i][j].box[ii][jj]=FALSE;
	//方块1
	MoveBox[0][0].box[0][0]=TRUE;
	MoveBox[0][0].box[0][1]=TRUE;
	MoveBox[0][0].box[1][1]=TRUE;
    MoveBox[0][0].width=2;
	MoveBox[0][0].heigh=2;
	

	MoveBox[0][1].box[0][1]=TRUE;
	MoveBox[0][1].box[1][0]=TRUE;
	MoveBox[0][1].box[1][1]=TRUE;
    MoveBox[0][1].width=2;
	MoveBox[0][1].heigh=2;


	MoveBox[0][2].box[0][0]=TRUE;
	MoveBox[0][2].box[1][0]=TRUE;
	MoveBox[0][2].box[1][1]=TRUE;
    MoveBox[0][2].width=2;
	MoveBox[0][2].heigh=2;


	MoveBox[0][3].box[0][0]=TRUE;
	MoveBox[0][3].box[1][0]=TRUE;
	MoveBox[0][3].box[0][1]=TRUE;
    MoveBox[0][3].width=2;
	MoveBox[0][3].heigh=2;
	for(i=0;i<=3;i++)
	MoveBox[0][i].color=RGB_0;
    brush[0]=CreateSolidBrush(RGB_0);
	
	//方块2
	for(i=0;i<=3;i++)
	{
	MoveBox[1][i].box[0][0]=TRUE;
	MoveBox[1][i].box[1][0]=TRUE;
	MoveBox[1][i].box[0][1]=TRUE;
	MoveBox[1][i].box[1][1]=TRUE;
    MoveBox[1][i].width=2;
	MoveBox[1][i].heigh=2;
	MoveBox[1][i].color=RGB_1;
	}
    brush[1]=CreateSolidBrush(RGB_1);
    
	//方块3
	MoveBox[2][0].box[0][0]=TRUE;
	MoveBox[2][0].box[1][0]=TRUE;
	MoveBox[2][0].box[2][0]=TRUE;
	MoveBox[2][0].box[3][0]=TRUE;
    MoveBox[2][0].width=4;
	MoveBox[2][0].heigh=1;

	MoveBox[2][1].box[0][0]=TRUE;
	MoveBox[2][1].box[0][1]=TRUE;
	MoveBox[2][1].box[0][2]=TRUE;
	MoveBox[2][1].box[0][3]=TRUE;
    MoveBox[2][1].width=1;
	MoveBox[2][1].heigh=4;

	MoveBox[2][2].box[0][0]=TRUE;
	MoveBox[2][2].box[1][0]=TRUE;
	MoveBox[2][2].box[2][0]=TRUE;
	MoveBox[2][2].box[3][0]=TRUE;
    MoveBox[2][2].width=4;
	MoveBox[2][2].heigh=1;

	MoveBox[2][3].box[0][0]=TRUE;
	MoveBox[2][3].box[0][1]=TRUE;
	MoveBox[2][3].box[0][2]=TRUE;
	MoveBox[2][3].box[0][3]=TRUE;
    MoveBox[2][3].width=1;
	MoveBox[2][3].heigh=4;
	for(i=0;i<=3;i++)
	MoveBox[2][i].color=RGB_2;
    brush[2]=CreateSolidBrush(RGB_2);

	//方块4
    MoveBox[3][0].box[1][0]=TRUE;
	MoveBox[3][0].box[0][1]=TRUE;
	MoveBox[3][0].box[1][1]=TRUE;
	MoveBox[3][0].box[2][1]=TRUE;
    MoveBox[3][0].width=3;
	MoveBox[3][0].heigh=2;

	MoveBox[3][1].box[1][0]=TRUE;
	MoveBox[3][1].box[0][1]=TRUE;
	MoveBox[3][1].box[1][1]=TRUE;
	MoveBox[3][1].box[1][2]=TRUE;
    MoveBox[3][1].width=2;
	MoveBox[3][1].heigh=3;

	MoveBox[3][2].box[0][0]=TRUE;
	MoveBox[3][2].box[1][0]=TRUE;
	MoveBox[3][2].box[2][0]=TRUE;
	MoveBox[3][2].box[1][1]=TRUE;
    MoveBox[3][2].width=3;
	MoveBox[3][2].heigh=2;

	MoveBox[3][3].box[0][0]=TRUE;
	MoveBox[3][3].box[0][1]=TRUE;
	MoveBox[3][3].box[0][2]=TRUE;
	MoveBox[3][3].box[1][1]=TRUE;
    MoveBox[3][3].width=2;
	MoveBox[3][3].heigh=3;
	for(i=0;i<=3;i++)
	MoveBox[3][i].color=RGB_3;
    brush[3]=CreateSolidBrush(RGB_3);

	//方块5
    MoveBox[4][0].box[0][0]=TRUE;
	MoveBox[4][0].box[0][1]=TRUE;
	MoveBox[4][0].box[0][2]=TRUE;
	MoveBox[4][0].box[1][2]=TRUE;
    MoveBox[4][0].width=2;
	MoveBox[4][0].heigh=3;


	MoveBox[4][1].box[2][0]=TRUE;
	MoveBox[4][1].box[0][1]=TRUE;
	MoveBox[4][1].box[1][1]=TRUE;
	MoveBox[4][1].box[2][1]=TRUE;
    MoveBox[4][1].width=3;
	MoveBox[4][1].heigh=2;

	MoveBox[4][2].box[0][0]=TRUE;
	MoveBox[4][2].box[1][0]=TRUE;
	MoveBox[4][2].box[1][1]=TRUE;
	MoveBox[4][2].box[1][2]=TRUE;
    MoveBox[4][2].width=2;
	MoveBox[4][2].heigh=3;

	MoveBox[4][3].box[0][0]=TRUE;
	MoveBox[4][3].box[1][0]=TRUE;
	MoveBox[4][3].box[2][0]=TRUE;
	MoveBox[4][3].box[0][1]=TRUE;
    MoveBox[4][3].width=3;
	MoveBox[4][3].heigh=2;
  	for(i=0;i<=3;i++)
	MoveBox[4][i].color=RGB_4;
    brush[4]=CreateSolidBrush(RGB_4);

	//方块6
    MoveBox[5][0].box[1][0]=TRUE;
	MoveBox[5][0].box[1][1]=TRUE;
	MoveBox[5][0].box[1][2]=TRUE;
	MoveBox[5][0].box[0][2]=TRUE;
    MoveBox[5][0].width=2;
	MoveBox[5][0].heigh=3;

	MoveBox[5][1].box[2][1]=TRUE;
	MoveBox[5][1].box[0][0]=TRUE;
	MoveBox[5][1].box[1][0]=TRUE;
	MoveBox[5][1].box[2][0]=TRUE;
    MoveBox[5][1].width=3;
	MoveBox[5][1].heigh=2;

	MoveBox[5][2].box[1][0]=TRUE;
	MoveBox[5][2].box[0][0]=TRUE;
	MoveBox[5][2].box[0][1]=TRUE;
	MoveBox[5][2].box[0][2]=TRUE;
    MoveBox[5][2].width=2;
	MoveBox[5][2].heigh=3;

	MoveBox[5][3].box[0][1]=TRUE;
	MoveBox[5][3].box[1][1]=TRUE;
	MoveBox[5][3].box[2][1]=TRUE;
	MoveBox[5][3].box[0][0]=TRUE;
    MoveBox[5][3].width=3;
	MoveBox[5][3].heigh=2;
   	for(i=0;i<=3;i++)
	MoveBox[5][i].color=RGB_5;
    brush[5]=CreateSolidBrush(RGB_5);

	//方块7
    MoveBox[6][0].box[0][0]=TRUE;
	MoveBox[6][0].box[0][1]=TRUE;
	MoveBox[6][0].box[1][1]=TRUE;
	MoveBox[6][0].box[1][2]=TRUE;
    MoveBox[6][0].width=2;
	MoveBox[6][0].heigh=3;

	MoveBox[6][1].box[1][0]=TRUE;
	MoveBox[6][1].box[2][0]=TRUE;
	MoveBox[6][1].box[0][1]=TRUE;
	MoveBox[6][1].box[1][1]=TRUE;
    MoveBox[6][1].width=3;
	MoveBox[6][1].heigh=2;

    MoveBox[6][2].box[0][0]=TRUE;
	MoveBox[6][2].box[0][1]=TRUE;
	MoveBox[6][2].box[1][1]=TRUE;
	MoveBox[6][2].box[1][2]=TRUE;
    MoveBox[6][2].width=2;
	MoveBox[6][2].heigh=3;

	MoveBox[6][3].box[1][0]=TRUE;
	MoveBox[6][3].box[2][0]=TRUE;
	MoveBox[6][3].box[0][1]=TRUE;
	MoveBox[6][3].box[1][1]=TRUE;
    MoveBox[6][3].width=3;
	MoveBox[6][3].heigh=2;
 	for(i=0;i<=3;i++)
	MoveBox[6][i].color=RGB_6;
    brush[6]=CreateSolidBrush(RGB_6);

	//方块8
    MoveBox[7][0].box[1][0]=TRUE;
	MoveBox[7][0].box[0][1]=TRUE;
	MoveBox[7][0].box[1][1]=TRUE;
	MoveBox[7][0].box[0][2]=TRUE;
    MoveBox[7][0].width=2;
	MoveBox[7][0].heigh=3;

	MoveBox[7][1].box[0][0]=TRUE;
	MoveBox[7][1].box[1][0]=TRUE;
	MoveBox[7][1].box[1][1]=TRUE;
	MoveBox[7][1].box[2][1]=TRUE;
    MoveBox[7][1].width=3;
	MoveBox[7][1].heigh=2;

    MoveBox[7][2].box[1][0]=TRUE;
	MoveBox[7][2].box[0][1]=TRUE;
	MoveBox[7][2].box[1][1]=TRUE;
	MoveBox[7][2].box[0][2]=TRUE;
    MoveBox[7][2].width=2;
	MoveBox[7][2].heigh=3;

	MoveBox[7][3].box[0][0]=TRUE;
	MoveBox[7][3].box[1][0]=TRUE;
	MoveBox[7][3].box[1][1]=TRUE;
	MoveBox[7][3].box[2][1]=TRUE;
    MoveBox[7][3].width=3;
	MoveBox[7][3].heigh=2;
	for(i=0;i<=3;i++)
	MoveBox[7][i].color=RGB_7;
    brush[7]=CreateSolidBrush(RGB_7);
	//方块9
	for(i=0;i<=3;i++)
	{
    MoveBox[8][i].box[1][0]=TRUE;
	MoveBox[8][i].box[0][1]=TRUE;
	MoveBox[8][i].box[1][1]=TRUE;
	MoveBox[8][i].box[2][1]=TRUE;
	MoveBox[8][i].box[1][2]=TRUE;
    MoveBox[8][i].width=3;
	MoveBox[8][i].heigh=3;
    MoveBox[8][i].color=RGB_8;
	}
    brush[8]=CreateSolidBrush(RGB_8);
	//方块10
    MoveBox[9][0].box[0][0]=TRUE;
    MoveBox[9][0].box[2][0]=TRUE;
	MoveBox[9][0].box[0][1]=TRUE;
	MoveBox[9][0].box[1][1]=TRUE;
	MoveBox[9][0].box[2][1]=TRUE;
    MoveBox[9][0].width=3;
	MoveBox[9][0].heigh=2;


	MoveBox[9][1].box[0][0]=TRUE;
	MoveBox[9][1].box[1][0]=TRUE;
	MoveBox[9][1].box[1][1]=TRUE;
	MoveBox[9][1].box[0][2]=TRUE;
	MoveBox[9][1].box[1][2]=TRUE;
    MoveBox[9][1].width=2;
	MoveBox[9][1].heigh=3;

	MoveBox[9][2].box[0][0]=TRUE;
    MoveBox[9][2].box[1][0]=TRUE;
	MoveBox[9][2].box[2][0]=TRUE;
	MoveBox[9][2].box[0][1]=TRUE;
	MoveBox[9][2].box[2][1]=TRUE;
    MoveBox[9][2].width=3;
	MoveBox[9][2].heigh=2;

	MoveBox[9][3].box[0][0]=TRUE;
	MoveBox[9][3].box[1][0]=TRUE;
	MoveBox[9][3].box[0][1]=TRUE;
	MoveBox[9][3].box[0][2]=TRUE;
	MoveBox[9][3].box[1][2]=TRUE;
    MoveBox[9][3].width=2;
	MoveBox[9][3].heigh=3;
    for(i=0;i<=3;i++)
	MoveBox[9][i].color=RGB_9;
    brush[9]=CreateSolidBrush(RGB_9);

//方块11
    MoveBox[10][0].box[0][0]=TRUE;
    MoveBox[10][0].box[0][1]=TRUE;
	MoveBox[10][0].box[1][1]=TRUE;
	MoveBox[10][0].box[2][1]=TRUE;
	MoveBox[10][0].box[2][2]=TRUE;
    MoveBox[10][0].width=3;
	MoveBox[10][0].heigh=3;

	MoveBox[10][1].box[1][0]=TRUE;
	MoveBox[10][1].box[2][0]=TRUE;
	MoveBox[10][1].box[1][1]=TRUE;
	MoveBox[10][1].box[0][2]=TRUE;
	MoveBox[10][1].box[1][2]=TRUE;
    MoveBox[10][1].width=3;
	MoveBox[10][1].heigh=3;

	MoveBox[10][2].box[0][0]=TRUE;
    MoveBox[10][2].box[0][1]=TRUE;
	MoveBox[10][2].box[1][1]=TRUE;
	MoveBox[10][2].box[2][1]=TRUE;
	MoveBox[10][2].box[2][2]=TRUE;
    MoveBox[10][2].width=3;
	MoveBox[10][2].heigh=3;

	MoveBox[10][3].box[1][0]=TRUE;
	MoveBox[10][3].box[2][0]=TRUE;
	MoveBox[10][3].box[1][1]=TRUE;
	MoveBox[10][3].box[0][2]=TRUE;
	MoveBox[10][3].box[1][2]=TRUE;
    MoveBox[10][3].width=3;
	MoveBox[10][3].heigh=3;
	for(i=0;i<=3;i++)
	MoveBox[10][i].color=RGB_10;
    brush[10]=CreateSolidBrush(RGB_10);

//方块12
    MoveBox[11][0].box[1][0]=TRUE;
    MoveBox[11][0].box[1][1]=TRUE;
	MoveBox[11][0].box[0][2]=TRUE;
	MoveBox[11][0].box[1][2]=TRUE;
	MoveBox[11][0].box[2][2]=TRUE;
    MoveBox[11][0].width=3;
	MoveBox[11][0].heigh=3;

	MoveBox[11][1].box[2][0]=TRUE;
	MoveBox[11][1].box[0][1]=TRUE;
	MoveBox[11][1].box[1][1]=TRUE;
	MoveBox[11][1].box[2][1]=TRUE;
	MoveBox[11][1].box[2][2]=TRUE;
    MoveBox[11][1].width=3;
	MoveBox[11][1].heigh=3;

	MoveBox[11][2].box[0][0]=TRUE;
    MoveBox[11][2].box[1][0]=TRUE;
	MoveBox[11][2].box[2][0]=TRUE;
	MoveBox[11][2].box[1][1]=TRUE;
	MoveBox[11][2].box[1][2]=TRUE;
    MoveBox[11][2].width=3;
	MoveBox[11][2].heigh=3;

	MoveBox[11][3].box[0][0]=TRUE;
	MoveBox[11][3].box[0][1]=TRUE;
	MoveBox[11][3].box[1][1]=TRUE;
	MoveBox[11][3].box[2][1]=TRUE;
	MoveBox[11][3].box[0][2]=TRUE;
    MoveBox[11][3].width=3;
	MoveBox[11][3].heigh=3;
	for(i=0;i<=3;i++)
	MoveBox[11][i].color=RGB_11;
    brush[11]=CreateSolidBrush(RGB_11);
}

GAME::~GAME()
{
	HelpData.Format("");
}

inline int GetBrushCode(const COLORREF color)
{
switch(color)
{
case RGB_0:return 0;
case RGB_1:return 1;
case RGB_2:return 2;
case RGB_3:return 3;
case RGB_4:return 4;
case RGB_5:return 5;
case RGB_6:return 6;
case RGB_7:return 7;
case RGB_8:return 8;
case RGB_9:return 9;
case RGB_10:return 10;
case RGB_11:return 11;
default:
	return 0;
}
}


void GAME::DrawBox(const int i,const int j)
{
    SelectObject(m_hDC,brush[GetBrushCode(BoxRgb[i][j])]);
	Rectangle(m_hDC,i*15,j*15,(i+1)*15,(j+1)*15);
}


void GAME::DelBox(const int i,const int j)
{
    SelectObject(m_hDC,bkbrush);
	Rectangle(m_hDC,i*15,j*15,(i+1)*15,(j+1)*15);

⌨️ 快捷键说明

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