C++写的俄罗斯方块项目

这是一篇关于使用C++编程语言实现的俄罗斯方块项目分享,旨在促进学习和交流。作者承认代码中参考了他人的算法,期待与读者共同探讨。
摘要由CSDN通过智能技术生成

自己写的c++小项目,分享出来大家一起学习交流,自认为写得不怎么样,有几处参考了别人的算法。
stdafx.h

#include "targetver.h"

#include <stdio.h>
#include <tchar.h>
#include<windows.h>
#include<time.h>
#include<conio.h>
#define MAP_ROW 31
#define MAP_COL 20
#define BLOCK_TYPE 7  //7种类型的方块
#define GRID "■"

enum{ BLANK, BOX};
typedef struct BLOCK
{
	int b[4][4];
}Block;
#define _CRT_SECURE_NO_WARNINGS

class Tetris
{
private:
	int MAP[MAP_ROW][MAP_COL];
	Block myBlock[7][4];
public:
	Tetris();
	~Tetris();
	int nn;
	int argc;
	_TCHAR **argv;
	int score;
	void gotoPos(int, int);
	void InitMap();
	void LoadBlock();
	void InitScreen();
	void HideCursor();
	void SetColor(int);
	void StartGame();
	void InitData();
	void DrawBox(bool, int,int, int, int);
	int IsMovableVert(int, int, int, int);//纵向移动检测
	int IsMovableHoriz(int, int, int, int,bool);//横向移动检测
	void IsLineDelete();
};

主cpp文件

#include "stdafx.h"

void Tetris::InitScreen()
{
	system("cls");
	srand((unsigned int)time(NULL));
	HideCursor();
}

void Tetris::gotoPos(int x, int y)//设置坐标
{
	COORD pos;
	pos.X = 2 * y;
	pos.Y = x;
	SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}

void Tetris::InitData()//初始化赋值
{
	for (int k = 0; k < 7; ++k)
	{
		for (int m = 0; m < 4; ++m)
		{
			for (int i = 0; i < 4; i++)
			{
				for (int j = 0; j < 4; j++)
				{
					myBlock[k][m].b[i][j]= 0;
				}
			}
		}
	}
	for (int i = 0; i < MAP_ROW; ++i)
	{
		for (int j = 0; j < MAP_COL; ++j)
		{
			MAP[i][j] = 0;
		}
	}
}

Tetris::Tetris()//构造函数
{
	system("mode con cols=60 lines=31");
	SetConsoleTitle(_T("C++俄罗斯方块"
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值