本代码运行环境是 Windows下的VS2013
首先创建 tetris.cpp
然后依次创建 view.h以及 view.cpp、 model.h以及 model.cpp。
代码如下:
view.h
#pragma once
#include <stdio.h>
void ShowBackground();
void ShowBrick();
void ShowGame();
void OnLeft();
void OnRight();
void OnUp();
void OnDown();
view.cpp
#include <stdlib.h>
#include "view.h"
#include "model.h"
void OnLeft()
{//如果能够左移,则左移
if (IsCanMove(g_nRow, g_nCol - 1))
{
g_nCol--;
ShowGame();
}
}
void OnRight()
{
if (IsCanMove(g_nRow, g_nCol + 1))
{
g_nCol++;
ShowGame();
}
}
void OnUp()
{
if (IsCanRotate())
{
Rotate();
ShowGame();
}
}
void OnDown()
{
if (IsCanMove(g_nRow+1, g_nCol))
{
g_nRow++;
ShowGame();
}
else
{
//固定方块至背景,并且产生新方块
CombineBgBrick();
GetNewBrick();
//判断游戏是否结束,并给出对应提示
}
}
void ShowGame()
{
system("cls");
CombineBgBrick();
ShowBackground();
DetachBgBrick();
}
void ShowBrick()
{
for (size_t i = 0; i < 4; i++)
{
for (size_t j = 0; j < 4; j++)
{
if (g_chBrick[i][j] == 1)
{
printf("■");
}
}
printf("\r\n");
}
}
void ShowBackground()
{