VC版双人PK版俄罗斯方块

源代码下载地址:http://download.csdn.net/detail/qq_29187355/9855657

1 题目要求

    设计一个双人俄罗斯方块游戏

2 功能需求

(1)   实现双人俄罗斯方块  

(2)   实现下一个砖块预测功能  

(3)  隐藏工具栏、状态栏 

(4)  实现难度可以选择

(5)   添加游戏说明菜单 添加作者菜单 添加网址超链接

(6)   实现砖块三维化  

(7)   实现总分统计功能,和每步消除所得分数显示 

(8)   实现背景音乐播放功能 

(9)   暂停功能

(10) 增加了新的方块类
(11) 设置窗口大小,禁用最大化按钮,禁止鼠标拖动改变窗口大小。

3 总体设计

1.矩形框类的设计:

设计CBin类描述Tetris游戏的矩形框,用image的二维数组来描述这个矩形框。设置不同的值显示不同颜色的矩形,若没有砖块则为0

2.砖块的设计:

设计CBrick抽象类来设计砖块,应用多态性的原理,其他不同类型的砖块类继承CBrick,来设计不同的砖块。

3.砖块在面板中的显示设计:

   在视图类中设计并显示砖块。

4 详细设计

          CBin类:

函数名称

函数说明

CBin(unsigned int w, unsigned int h)

构造函数,用来初始化数据成员

width  和 height ,并为image 分配空间并初始化。

~CBin()

析构函数,删除在构造函数中为

image分配的空间。

void getImage(unsigned char**

destImage)

将image 的数据拷贝到 destImage.

你可以假设destImage 指向的空间足够容纳image

void setImage(unsigned char**

srcImage)

把srcImage  中的数据拷贝到image.

你可以假设srcImage 是一个合法的指针

unsigned int removeFullLines()

检查image ,如果任何一行完全填

满,则删除这一行,并让上面行的

数据下移一行,返回删除的总行数。

详细代码:

#include"stdafx.h"
#include "bin.h"  //" "从自己编写的头文件中找,<>从系统自带头文件中找.

CBin
CBin::CBin(unsigned int w, unsigned int h)
{
	width=w;
	height=h;
	image = new unsigned char* [height];
    for (unsigned int i = 0; i
   
   
    
    0; m--)
            {
				for (j=0; j
    
    
   
   

CBrick类

设计CBrick抽象类来设计砖块。

CBrick类的成员函数:

        virtual int shiftLeft(CBin*bin)=0;      //将砖块在游戏的矩形框内左移一位       

        virtual int shiftRight(CBin* bin)=0;     //将砖块在游戏的矩形框内右移一位

        virtual int shiftDown(CBin* bin)=0;     //将砖块在游戏的矩形框内下移

        virtual int rotateClockwise(CBin* bin)=0;           //将砖块在游戏的矩形框内顺时针旋转

        virtual int checkCollision(CBin* bin)=0;          //检查砖块是否冲突

        virtual void operator>>(unsigned char**binImage)=0;     //重载运算符>>,通过设置映射到游戏矩形的二维数组binImage,设置砖块的颜色,这里假设binimage是一个合适的二维数组。

      virtual void putAtTop(int newOrien

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值