`
桔红糕
  • 浏览: 42715 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

俄罗斯方块(九)Panel里的障碍方块

    博客分类:
  • CPP
阅读更多

一开始我们做纯C++俄罗斯方块构架的时候,并没有让大家考虑Panel里面的障碍方块。

现在我们来添加一下。在Panel里面增加一个成员变量,来记住一组障碍方块。

 

我第一个想法是用一个容器保存一组Box,比如说set<Box>,(set代表说里面的box都不能重复)。不过这样做销行的时候可能有点复杂。

比较常见的做法是用一个bool的二维数组。二维数组代表整个Panel的平面。bool来表示平面中哪个点有障碍块,哪个点没有。

不过,为了练习容器类,bool的二维数组,我们也可以用vector<vector<bool>>来代替。

 

里面的vector<bool>代表的是由bool组成的数组,也就是Panel的行。

外面的vector<...>代表的是由行组成的数组,也就是Panel的平面。

 

所以里面的vector大小应该是行的个数,而外面的vector大小应该是列的个数。这个一定要搞清楚!

class Panel : public CWnd
{
private:
	std::vector<std::vector<bool>>  body;
 

 

我们在游戏开始的时候创建这个障碍的二维数组,并都清空(俄罗斯方块复杂的时候一开始并不清空,而是填充一些凌乱的障碍块,这个同学可以自己实现一下。)。

void Panel::start()
{
	createBody();
	randomCreate();
	Invalidate(false);
}

void Panel::createBody()
{
	body.resize(getHeight(), vector<bool>(getWidth(),false));
	fill(body.begin(), body.end(),vector<bool>(getWidth(),false));
}

 

这里我们用到一些STL标准算法resize和fill,而且还用到vector的构造函数vector<type>(size,value);

算法就不介绍了,大家一定要注意宽高的设置。

分享到:
评论

相关推荐

    python基于pygame的俄罗斯方块小游戏源码.zip

    python基于pygame的俄罗斯方块小游戏源码。python基于pygame的俄罗斯方块小游戏源码。python基于pygame的俄罗斯方块小游戏源码。python基于pygame的俄罗斯方块小游戏源码。python基于pygame的俄罗斯方块小游戏源码。...

    传智播客_俄罗斯方块游戏10_障碍物生成与显示.rar

    在本课程中,"传智播客_俄罗斯方块游戏10_障碍物生成与显示",我们将深入探讨如何在编程实现俄罗斯方块游戏中添加障碍物的生成与显示功能。这个话题涵盖了游戏开发中的基本概念、算法设计以及图形用户界面(GUI)的...

    传智播客_俄罗斯方块游戏10_障碍物生成与显示

    在本课程“传智播客_俄罗斯方块游戏10_障碍物生成与显示”中,我们将深入探讨如何使用Java编程语言实现一个经典的桌面游戏——俄罗斯方块。这个课程特别关注面向对象编程的基础核心概念,这是学习JavaEE、JavaME等...

    俄罗斯方块(C语言版) 俄罗斯方块

    【俄罗斯方块(C语言版) 俄罗斯方块】是一个基于C语言实现的经典游戏项目,它将编程技术与游戏设计巧妙结合,展示了C语言在创建交互式程序方面的潜力。在这个项目中,开发者利用C语言的基本结构,如循环、条件语句...

    c语言俄罗斯方块完整源码

    c语言俄罗斯方块完整源码 c语言俄罗斯方块完整源码 c语言俄罗斯方块完整源码 c语言俄罗斯方块完整源码 c语言俄罗斯方块完整源码 c语言俄罗斯方块完整源码 c语言俄罗斯方块完整源码 c语言俄罗斯方块完整源码 c语言...

    俄罗斯方块 c# 俄罗斯方块

    顶下俄罗斯方块 c#俄罗斯方块 c#俄罗斯方块 c#顶下俄罗斯方块 c#俄罗斯方块 c#俄罗斯方块 c#顶下俄罗斯方块 c#俄罗斯方块 c#俄罗斯方块 c#顶下俄罗斯方块 c#俄罗斯方块 c#俄罗斯方块 c#

    俄罗斯方块C语言报告

    ### 俄罗斯方块C语言程序设计报告 #### 一、问题描述 俄罗斯方块(俄文:Тетрис)是一款经典的益智类游戏,最初由苏联程序员阿列克谢·帕基特诺夫于1984年开发。游戏的目标是通过移动、旋转屏幕上的方块,...

    C#俄罗斯方块(winform)

    C#俄罗斯方块(winform)C#俄罗斯方块(winform)C#俄罗斯方块(winform)C#俄罗斯方块(winform)C#俄罗斯方块(winform)C#俄罗斯方块(winform)C#俄罗斯方块(winform)

    java编的俄罗斯方块

    好游戏java编的俄罗斯方块好游戏java编的俄罗斯方块好游戏java编的俄罗斯方块好游戏java编的俄罗斯方块好游戏java编的俄罗斯方块好游戏java编的俄罗斯方块好游戏java编的俄罗斯方块好游戏java编的俄罗斯方块好游戏...

    基于强化学习的AI俄罗斯方块

    基于强化学习的AI俄罗斯方块基于强化学习的AI俄罗斯方块基于强化学习的AI俄罗斯方块基于强化学习的AI俄罗斯方块基于强化学习的AI俄罗斯方块基于强化学习的AI俄罗斯方块基于强化学习的AI俄罗斯方块基于强化学习的AI...

    java毕业设计——俄罗斯方块项目(论文+答辩PPT+源代码+数据库+讲解视频).zip

    java毕业设计——俄罗斯方块项目(论文+答辩PPT+源代码+数据库+讲解视频).zip java毕业设计——俄罗斯方块项目(论文+答辩PPT+源代码+数据库+讲解视频).zip java毕业设计——俄罗斯方块项目(论文+答辩PPT+源代码+...

    VC可视化俄罗斯方块源码

    俄罗斯方块是我大学一年级刚学VC++时的课程设计,当时的课程设计有三种,单文档、多文档和俄罗斯方块。我选择俄罗斯方块,就是因为它是游戏。 之前我是玩过俄罗斯方块的,一种是单人的(单人版),一种是两人对战的...

    C#写的简单俄罗斯方块游戏

    《C#实现的简单俄罗斯方块游戏详解》 在编程世界中,开发一款经典的小游戏是许多初学者和爱好者热衷的项目。本篇将详细解析一个使用C#语言编写的简单俄罗斯方块游戏,带你深入理解游戏的核心机制以及C#编程在游戏...

    俄罗斯方块C++源代码

    《俄罗斯方块C++源代码解析》 在编程领域,经典游戏俄罗斯方块是一个极好的学习案例,它涉及到了基础的图形界面设计、事件处理、数据结构和算法等多个知识点。本篇文章将对“俄罗斯方块C++源代码”进行深入剖析,...

    俄罗斯方块游戏-JAVA实现(含双人联机对战).zip

    俄罗斯方块游戏--JAVA实现(含双人联机对战).zip 俄罗斯方块游戏--JAVA实现(含双人联机对战).zip 俄罗斯方块游戏--JAVA实现(含双人联机对战).zip 俄罗斯方块游戏--JAVA实现(含双人联机对战).zip 俄罗斯方块...

    flash俄罗斯方块源代码

    《深入解析Flash俄罗斯方块源代码》 在游戏开发领域,经典的俄罗斯方块以其独特的玩法和无尽的挑战性,始终吸引着众多开发者去实现。本篇将详细探讨一款使用Flash技术编写的俄罗斯方块源代码,帮助你理解并学习...

    俄罗斯方块 俄罗斯方块.rar

    《俄罗斯方块》是一款经典的游戏,自1984年首次发布以来,就深受全球玩家喜爱。这款游戏由苏联程序员阿列克谢·帕基特诺夫设计,因其简单易上手的操作和无穷无尽的挑战性,成为了电子游戏史上的里程碑。在本文中,...

    tetris俄罗斯方块cocoscreator源码

    《 Tetris俄罗斯方块CocosCreator源码解析与技术探讨》 Tetris,即我们熟知的俄罗斯方块,是一款经典的益智游戏,其简洁的规则和无尽的挑战性吸引了全球无数玩家。CocosCreator是一款强大的2D游戏开发引擎,结合了...

    verilog设计俄罗斯方块_俄罗斯方块_VHDL-FPGA-Verilog_

    《基于FPGA的Verilog实现俄罗斯方块游戏详解》 在现代数字系统设计中,FPGA(Field-Programmable Gate Array)因其可重构性和高速处理能力被广泛应用。结合高级硬件描述语言如Verilog,我们可以实现复杂的功能,...

    SCRATCH版3D俄罗斯方块

    使用SCRATCH开发的3D版俄罗斯方块

Global site tag (gtag.js) - Google Analytics