VC版双人PK版俄罗斯方块

本文档详细介绍了使用VC++设计的双人俄罗斯方块游戏的实现过程,包括背景位图的插入、游戏功能需求、总体与详细设计、暂停功能、双人模式、预显示功能、界面美化、背景音乐以及帮助和超文本链接的添加。提供了源代码下载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

源代码下载地址:http://download.youkuaiyun.com/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;           //将砖块在游戏的矩形框内顺时针旋转

  &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值