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

俄罗斯方块(十三)销行

    博客分类:
  • CPP
阅读更多

方块沉底后,如果能整齐的垒满一整行,则这行就可以被消除。

 

那我们把销行的代码写在哪里呢?我想应该在每次加上障碍块的时候看看是不是满行了。

void Panel::ElementDead()
{
	for (int i=0; i<4; i++)
	{
		body[element->body[i].getY()][element->body[i].getX()] = true;
	}
	delete (element);

	//销行

	randomCreate();
}

 

好吧,那我们开始销行。由于我们用的是stl的容器类vector,所以可以用标准的STL算法remove,只要在最后一个函数指明要消除的行是所有点都是true,也就是布满障碍块的行。

vector<vector<bool>>::reverse_iterator end = remove(body.rbegin(), body.rend(), vector<bool>(getWidth(), true));

 

为什么要用reverse_iterator呢?因为remove会把原有内容除去指定内容后"收缩"起来,拷贝在指定iterator头的地方。而俄罗斯方块要求的是往下“收缩”,也就是消除行的下方是不动的,上方的行下沉。所以我们希望remove能反向操作,也就是用reverse_iterator来实现。

 

消除行后,空出来的行我们还是要填成空的

fill(end, body.rend(), vector<bool>(getWidth(), false));

 

这样销行就完成了。

 

 

 

 

分享到:
评论

相关推荐

    200行Python代码实现俄罗斯方块游戏所有功能源码.zip

    200行Python代码实现俄罗斯方块所有功能源码200行Python代码实现俄罗斯方块所有功能源码200行Python代码实现俄罗斯方块所有功能源码200行Python代码实现俄罗斯方块所有功能源码200行Python代码实现俄罗斯方块所有...

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

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

    200行Python代码实现俄罗斯方块所有功能(源码).zip

    200行Python代码实现俄罗斯方块所有功能(源码) 200行Python代码实现俄罗斯方块所有功能(源码) 200行Python代码实现俄罗斯方块所有功能(源码) 200行Python代码实现俄罗斯方块所有功能(源码) 200行Python...

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

    俄罗斯方块的核心逻辑包括方块生成、下落、旋转、碰撞检测、消除行和得分计算等。C语言的控制流程结构,如while、for循环和if条件判断,用于实现这些逻辑。方块的旋转通常需要通过矩阵变换来完成,而碰撞检测则涉及...

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

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

    俄罗斯方块C语言报告

    - **判断是否满行并删除满行的俄罗斯方块**:检测每一行是否被填满,并清除满行。 #### 三、程序设计 ##### 1. 程序总体结构设计 程序主要包含以下几个部分: - **游戏方块预览功能**:在游戏过程中,右侧会显示...

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

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

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

    《俄罗斯方块》是一款经典的游戏,自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编的俄罗斯方块好游戏...

    俄罗斯方块C++源代码

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

    俄罗斯方块 俄罗斯方块

    7. 特殊规则和道具:在某些版本的《俄罗斯方块》中,可能包含特殊规则,如随机出现的“炸弹”方块,消除周围方块,或者道具系统,帮助玩家暂时减缓方块下落速度或消除一行。 8. 心理战术:由于游戏的节奏和压力,...

    VC可视化俄罗斯方块源码

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

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

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

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

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

    PSP俄罗斯方块.iso

    PSP俄罗斯方块.iso

    SCRATCH版3D俄罗斯方块

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

    flash俄罗斯方块源代码

    在ActionScript中,这些逻辑通过一系列的函数实现,如`generateBlock()`用于生成新方块,`moveDown()`控制方块向下移动,`rotateBlock()`实现方块的旋转,`checkLines()`检测并消除满行,`updateScore()`更新玩家...

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

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

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

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

Global site tag (gtag.js) - Google Analytics