内容发布更新时间 : 2025/1/9 17:27:20星期一 下面是文章的全部内容请认真阅读。
俄罗斯方块
俄罗斯方块是我大学一年级刚学VC++时的课程设计,当时的课程设计有三种,单文档、多文档和俄罗斯方块。我选择俄罗斯方块,就是因为它是游戏。
之前我是玩过俄罗斯方块的,一种是单人的(单人版),一种是两人对战的(对战版),还有一种是网络版的,由于我还不了解网络,所以就决定编前两种。可是,这样没有新意,我就想到了另外一种,配合游戏,或者称为情侣版。这里我先介绍三种,而网络版,由于我们将介绍五子棋的网络游戏,鉴于它的简单性,我们将不介绍。
说明:以下三部分,可以以三章看待。
一、 单人版
1、 游戏实现
俄罗斯方块,或称积木游戏,它是利用一些形状各异却又是用正方形组成的方块,经过不同位置不同角度的变化之后,堆积在一起的一种智力游戏。
而从我们编程的角度讲,我们只需要提供各种方块的图形,提供几个键盘操作键以供方块的形状和位置的变化,提供几个功能函数以供游戏的正常进行。
各种方块图形:利用数组定形,然后利用随机函数随机地不按顺序地按游戏的需要而出现。
键盘操作键:就是四个方向键。其中左、右、下三个键意思一样,上键的功能不是使方块向上,而是使方块的下落角度改变。
功能函数将在变量函数里面介绍。
新建单文档工程4_1。
2、 资源编辑
添加位图:
封面: IDB_BITMAP1
背景: IDB_BITMAP2
方块: IDB_BITMAP4
添加菜单:
开始: ID_MENU_START
3、 变量函数
接着就是定义变量了,但是,由于这个游戏要添加的变量和函数太多了,我们要建一个新类。
是否应该先添加应该类呢?最好是这样。因为新类将会涉及到变量。
添加普通类Crussia,见下图。
图4-1-1
添加变量函数:
由于两个类一共有很多变量函数,列举如下:
// 4_1View.h :
//俄罗斯类
CRussia russia;
//开始标志
bool start;
//封面
CBitmap fenmian;
//暂停
BOOL m_bPause;
//开始菜单
afx_msg void OnMenuStart();
//计时器
afx_msg void OnTimer(UINT nIDEvent);
//键盘操作
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
// Russia.h:
//游戏数组
int Russia[100][100];
// 当前图形
int Now[4][4];