混凝土方块

2024-06-18

混凝土方块(共10篇)

混凝土方块 篇1

1 引言

在港工工程中, 混凝土及其结构的耐久性已越来越受重视, 特别是混凝土的抗冻性问题。大量的研究和实践表明, 加入引气剂是提高混凝土抗冻性的主要手段, 从而解决混凝土的抗冻融耐久性问题。结合望海珍珠湾综合开发建设项目码头工程, 我们对此工程施工过程中的现象进行分析, 总结了混凝土原材料要求、配合比设计方法及施工过程中注意的事项。

2 混凝土冻融破坏的机理

混凝土在冻结温度下, 内部可冻水变成冰时, 体积膨胀9%左右, 冰在毛细孔中受到约束力而产生巨大压力, 另一方面过冷的水发生迁移, 冰水、蒸汽压造成渗透力, 这两种压力共同作用时, 当超过混凝土抗拉强度时则产生局部裂缝, 或使混凝土内部微细裂缝扩展, 当冻融循环左右时, 这种破坏作用反复进行, 使裂缝不断扩展, 相互贯通, 最后造成混凝土破坏。

3 引气剂影响抗冻性的原理

引气剂是具有憎水性的表面活性物质, 它可以明显降低拌合水的表面张力, 使混凝土内部产生大量微小、稳定、分布均匀而不连通的气泡, 当混凝土冻结产生膨胀压力时, 这些气泡可以起缓解作用, 从而减轻冻结破坏作用。另外, 这些气泡可以切断混凝土毛细管通道, 使外界水分不易侵入, 减少水饱和程度、相应也减轻冻结破坏作用。

4 抗冻性混凝土的原材料选择、配合比设计

4.1 配合比设计原则。

满足设计、施工要求的情况下, 尽量减少混凝土的单位水泥用量;采用高效减水剂和引气剂;

4.2 原材料的选择。原材料根据工程实际情况和《水运工程混凝土施工规范》进行选择。

4.2.1 水泥。

抗冻性混凝土所用水泥宜采用普通硅酸盐水泥和硅酸盐水泥, 另外, 结构混凝土所用水泥的标号, 不得低于425号, 我们选用营口当地的天瑞P.O42.5的普通硅酸盐水泥。

4.2.2 集料。

集料本身的抗冻性能会影响混凝土的整体抗冻性能, 集料的抗冻性能主要取决于自身的抗压强度、集料级配和含泥量等, 另外, 集料的种类对混凝土的抗冻性能也有较大影响。

(1) 粗骨料。根据结构最小断面尺寸和泵送管道内径选择合理的最大粒径, 尽可能选用较大的粒径。实践证明同质量的大粒径可比小粒径的碎石或卵石减少用水量, 降低水泥用量。方块混凝土的粗骨料采用的是20mm~40mm和5mm~25mm的石子二级配的组合, 同时, 抗冻性混凝土应严格控制粗骨料的含泥量。我们采用水洗过后的碎石。

(2) 细骨料。细集料以采用级配良好的中粗砂为宜。实践证明细度模数大的中砂比采用细度模数小的中砂可减少用水量, 从降低水泥用量, 以便在保证混凝土强度及流动度条件下, 尽量节省水泥、降低成本。同时, 由于是抗冻性混凝土, 砂的含泥量和泥块含量有严格的要求。

4.2.3 外加剂

(1) 引气剂。引气剂对提高混凝土的抗冻性具有重要作用。选用青岛科力型号为PC-2Y的引气剂。

(2) 减水剂。减水剂能减少混凝土中必要的单位用水量, 并能满足规定的稠度要求, 提高混凝土的和易性。因此可大量减低拌合用水量, 所以可降低水灰比, 使硬化后的混凝土毛细孔隙结构的分散情况得到改善, 孔径和孔隙率显著减少, 提高了混凝土的密实性和抗冻性。选用大连大华型号为TH-2的高效减水剂,

4.3 试验用配合比。

水灰比的选择同时满足混凝土强度和耐久性, 同时海水环境混凝土按耐久性要求的水灰比有最大允许值和最低水泥用量。根据方块混凝土 (C30F300) 配合比设计要求, 经过对各种原材料的选择, 坍落值控制在140mm~160mm, 含气量控制在3.0%~6.0%, 以及大量的试配工作, 确定方块混凝土 (C30F300) 的施工配合比。

5 混凝土的试验检测结果

5.1 混凝土的强度。

所拌混凝土的和易性良好、无离析泌水现象, 其物理技术性能检测结果, 混凝土坍落度、含气量符合配合比要求, 抗压强度符合设计要求。

5.2 混凝土的抗冻性。

在强度满足要求的同时, 耐久性是决定混凝土是否满足设计要求的关键。试验检测用CDR-2型混凝土快速冻融仪和DT-10动弹仪, 每经历50次冻融循环后, 对试件分别进行重量和动弹模量检查, 试验结果评定是以重量损失率达5%或相对动弹模量下降至75%时, 认为试件已达破坏, 并以相对的冻融循环次数作为该混凝土的抗冻融等级, 如相对重量损失率或相对动弹模量下降均为达到上述指标, 但冻融循环次数已满足设计要求, 亦可停止试验。所以从试验检测结果可知, 掺如引气剂后, 混凝土的强度和耐久性满足设计要求C30F300。

6 混凝土施工过程应注意的事项

(1) 施工时确保按配合比设计要求配制混凝土, 搅拌时的进料顺序是砂石水泥, 水和配置好是引气剂溶液后加入, 以减少混凝土含气量的减少, 也就是引气剂掺量。

(2) 引气剂混凝土的搅拌时间要比普通混凝土的搅拌时间长0.5min~1.0min, 以保证引气剂和水泥、减水剂拌和均匀, 提高其匀质性。

(3) 由于方块时大体积混凝土, 所以在浇筑时采用分层浇筑, 每层厚度为50cm。

(4) 在方块拆模后养护时, 在马腿中灌入水, 在方块表面覆盖两层土工布和一层塑料布。

(5) 另外, 由于混凝土的含气量受集料的影响, 而含气量是影响混凝土抗冻性的主要因素, 所以要根据实际情况调节引气剂的掺量, 以保证混凝土的含气量在3%~6%。

结语

使用此配合比, 混凝土的强度评定验收和抗冻性评定验收, 都满足《水运工程混凝土施工规范》规定的合格条件。证明此工程的混凝土配合比设计, 施工措施经实践论证是可行的。

参考文献

[1]徐晓巍, 等.不同环境下普通混凝土抗冻试验研究及机理分析[J].混凝土, 20 (02) .

[2]王宝卿, 等.混凝土抗冻性能实验方法的探讨[J].东北水利水电, 2004 (07) .

方块汉字的“折” 篇2

“折”是指两个笔画的连接处,那么,写“折”要注意什么呢?

(一)写好折角

我们从横折这个笔画开始吧,横折是“横+竖”,一横写到折处稍顿一下,再改变方向行笔写竖,要简洁明快,干净利索。折角是折画的关键部位,要注意观察,竖画是直着向下还是往左下行笔。我们比较一下,会发现有一定规律:一般横长竖短时,竖往内收,体现在口字框的字上,左边的一竖也要内收;横短竖长,如国字框,竖就垂直向下,左边竖也是垂直向下的。

书写横折要避免出现下面几种情况:

还要提醒大家的是,有些楷书字帖,特别是常见的颜体和柳体字帖中,横折在折的地方看似是断笔,或者特别突兀,这是毛笔运笔轻重变化造成的。我们用硬笔书写,不会有那么丰富的变化,如果有意把一个横折写成横、竖两个笔画,或者有意描画折处,依葫芦画瓢,那反而是错误的。这样的字帖也并不适合我们初学者用硬笔临写。

竖折是“竖+横”,写法也有两种:一种竖短横长的竖折,起笔竖略微有点斜,如“山、画”;另一种竖长横短,起笔竖画则垂直往下,如“区、巨”。

(二)转、折不能混淆

上面说到横折的角写成圆角,就成了横弯,楷书没有这个笔画。如果转折处没有稍顿一下,方块汉字的肩膀就感觉塌下去了。

还有竖折,写到折处略顿一下再写横。如果写完竖后,直接向右弯转,那就成了另外一个笔画——竖弯,竖弯的这个弯要圆转一些。两者主要区别就在于,是折还是转。

用笔不管是折还是转,都应该交代清楚,不可混淆。

(三)写好各部位的笔画

折画都是组合型的笔画,每个部分的笔画都应该写好。我们再来看看其他类型的折。

横撇:横+撇,撇要写得潇洒,尽量写出笔锋来,否则成了横折。

撇点、撇提、撇折要看清轻重、角度。

撇点:撇+长点,两笔不能分开,撇到尽头稍顿,换向往右下顿去。两段长度略等,夹角较大。

撇提:撇+提,撇画用笔由重到轻,撇到尽头,顿笔向右上提出,由重到轻。夹角较小,形成尖角。

撇折:撇+横,撇短,横就同长横写法一样;若撇较长,横就不能写得太平或上翘,可以略往右下行笔。夹角都不要太大。

一些复杂的折可能由三个笔画组成,不太容易掌握,需要多揣摩。

如横折提,横短而斜,竖也略微右倾,最后提形成的夹角要小。总之,每个部位的角度、长短、方向都很有讲究,这些都要观察好,多练习多对比就能找到结构规律。

最后请你补写一下“临古今书法”几个字的折画。

(刘有林 书法家,苏教版小学语文教材范字书写者)

核桃初夏方块芽接技术要点 篇3

一、砧木及肥水、摘心

对核桃实生苗萌芽前 (3月上旬) 基部保留5厘米左右进行平茬处理, 平茬后应及时灌透水一次, 并每亩增施硫酸钾25千克、尿素15千克, 为苗木提供充足的养分。于4月中旬、5月中旬结合浇水追施尿素10千克/亩, 一定要严格控制肥水, 防止砧木生长过旺, 否则, 枝条组织不充实, 嫁接成活率低。

在苗高5厘米时, 除去多余萌芽, 20厘米时摘心以增加粗度[1]。

二、准确把握嫁接时机

一般认为在砧、穗生长最旺盛的时期, 即形成细胞和薄壁组织的细胞分裂最快的时期, 为最适芽接时期。原则上初夏芽接应在砧木粗度 (地径1.1~2.1厘米最适宜, 必须0.7厘米以上) 和木质化程度恰好能满足嫁接的要求, 同时接穗接芽饱满, 接穗利用率比较高, 接芽成熟的前提下越早越好, 早不仅可以明显提高嫁接成活率, 而且可以提高嫁接苗的当年生长量, 嫁接苗的木质化程度也高, 此时若发现未成活可再次补接。

北方宜在5月下旬~6月上旬, 一定要在雨季来临的6月20日之前完成嫁接, 最晚不能超过6月30日, 如过早枝条成熟度不够, 芽子发育不好, 接芽易变黑腐烂, 严重影响成活, 过晚接芽萌动抽生新梢短, 木质化程度低, 不能安全越冬, 同时由于气温偏高, 接芽尚未愈合也会因失水太多而枯死, 成活率低。5月底~6月上旬, 此时日平均气温达25~30℃时, 温度直接影响形成层的分生速度, 而核桃愈伤组织形成的适宜温度为24-28℃, 以28℃左右最为适宜, 愈合时间短, 细胞活性高, 10天左右就开始萌芽抽梢, 此时有利于嫁接成活。

三、选取接穗摘心、采集

1. 选取接穗摘心

在优良品种的初结果期母树上, 选树冠外围、髓部小、充实健壮的当年生半木质化发育枝作接穗, 在嫁接时间提前4~5天摘心, 摘心时间不宜过早或过晚, 过早影响接穗枝和母树的生长, 并会使接穗不易离皮造成取芽困难, 过晚则达不到提高接芽利用率的目的, 合理的摘心可以促使接穗中上部三四芽加速成熟以供利用, 也要对采穗圃补以足够的肥料并进行精细的综合管理.这样提高接穗中淀粉和可溶性糖含量和C/N比值, 影响生长调节物质之间的平衡, 有利于嫁接成活。

2. 接穗采集

接穗采集时, 要求粗度1~1.5厘米 (最好在1.51~2.40厘米) , 采下接穗后立即剪掉复叶, 留1~1.5厘米的叶柄, 将接芽叶柄从芽基部向下斜切, 其截面与穗条间约呈135°夹角, 使芽基部暴露, 以便露芽绑缚。根据长短和粗度分级, 每20个扎成一捆, 用标签标明品种, 为减少水分蒸发, 用湿布加塑料薄膜包好, 置于潮湿阴凉处。

采集前要根据嫁接能力确定采集量, 最好随采随接[2], 这样接穗新鲜, 水分充足, 有利于愈伤组织细胞的分裂和接芽萌发。当日嫁接不完者, 须扎捆后将基部2~3厘米 (避开芽) 浸入浅水中, 覆湿布置阴凉处, 最长不能超过3天, 因核桃枝条接穗的含水量在50%以上, 愈伤组织形成最快, 穗条失水率超过12.7%时, 愈伤组织不能形成。

四、优选接芽、规范切取

1. 选芽

在同一接穗上, 以中段的芽成活率最高[3], 其次基部芽, 顶部最差。接穗中下部芽, 褐色, 芽片平展, 芽充实, 取芽易带生长点, 嫁接成活率高。接穗上部芽, 绿色, 没有充分木质化, 芽片凹形大, 芽不充实, 取芽不易带生长点, 捆绑时芽片与砧木贴合不紧, 影响嫁接成活率。

2. 削取芽片

选用双刃刀, 在芽上1~1.5厘米、芽下2~2.5厘米分别横割一刀, 宽2~3厘米深达木质部, 然后在芽右纵割一刀, 长约4厘米, 再在芽左侧纵割一刀, 深度同前 (暂不取下芽片) 再在其左侧2~3毫米处再刻一竖刀, 并与之平行, 取下上面形成的一条枝皮 (作砧木切口上下的标准) 。切好砧木切口后, 再用右手大拇指和食指捏住叶柄轻轻掰下芽片 (要带上生长点) , 芽片长3~4厘米, 宽2~3厘米[4]。一定注意保护芽片生长点处的护芽肉, 剥取芽片时不要用力过猛, 以免挤压生长点。如果护芽肉掉落, 则不可使用, 需重新切取。

五、看准砧木嫁接部位, 切削

1. 砧木嫁接部位

在砧木上的嫁接部位最好离地面5~10厘米高度, 接口位置的选择, 一般以北、东北方向为宜。

2. 切砧木

砧木削取有两种方式, 第一:单开门, 应用于较粗砧木将取下的枝皮放在砧木上, 以此平行地横切两道, 深达木质部, 在上两切口的左侧 (或右侧) 纵切一刀, 并将树皮撬开, 取下接穗上的芽片, 将芽片放入砧木切口里, 使接芽和砧木上切口形成层最大限度对齐, 侧面一侧对齐, 另一侧根据接芽宽度, 将砧木皮层撕下。第二:双开门 (工字形芽接) , 应用于较细砧木, 两横刀的切削方法同一, 只是在横切口中心, 竖切一刀, 长度小于芽片长度, 将砧木皮撬开, 然后用刀口撬开皮层, 再迅速将芽片嵌入砧木切口。

六、严格绑缚、放风

用右手大拇指按住插入砧木切口处的接芽, 用宽1.5~1.8厘米, 长25~40厘米的薄膜, 两手配合自下而上进行绑扎。做到芽和叶柄外露, 绑扎严紧, 松紧适度。

绑扎后, 用芽接刀在叶柄部位的薄膜上, 用刀尖划开一小口“放风”, 使多余水分及时散失, 保证愈伤组织新鲜干燥, 以防叶柄发黑并连带接芽芽片腐烂。

七、操作速度快、清洁

因核桃枝条含有大量的单宁 (一种碱性物质) , 遇空气, 切口细胞内的单宁氧化缩合而成不溶于水的单宁聚合物, 它和细胞内的蛋白质接触而使其沉淀, 呈现原生质颗粒化, 在砧穗间形成黑竭色“隔离层”, 阻碍砧穗二者形成层结合, 影响嫁接成活。也不要用手触摸芽片和砧木接口的形成层, 并保持形成层清洁。

八、遮光防雨促成活

在黑暗条件下, 接口长出的愈伤组织多, 呈乳白色、极幼嫩, 砧木和接穗极易愈合;在光照条件下, 愈伤组织少而硬, 呈浅绿色, 砧穗愈合必须靠接口内不透光部分的愈伤组织, 因而成活的机会和愈合的速度均受到影响。在塑料条包扎后, 采用接口遮荫伞或加挡光绑覆物 (如厚纸) 等遮光方法, 可提高嫁接成活。

雨水灌人嫁接部位后, 阻碍接穗呼吸, 导致形成层坏死, 接后3~5天内天气晴朗易于成活。阴雨天不宜嫁接, 如遇雨天, 有条件的可搭建遮雨棚。

九、及时查活、除萌、二次剪砧

1. 检查成活和补接

芽接后15~20天即可检查成活, 如接芽新鲜, 叶柄一触即落表明成活[5], 对未成活的要及时补接。

2. 除萌

嫁接后的核桃砧木容易产生萌蘖, 应在萌蘖幼小时及时除去, 以免与接芽争夺养分, 影响嫁接成活。

3. 二次剪砧

嫁接后立即在接芽以上留1~2叶剪砧, 因为核桃砧木髓心大, 下雨易进水、易干枯, 再者接芽成活到萌发抽新梢大约10天左右, 上部保留的复叶为接芽萌发提供所需养分, 不然接芽有枯死的可能。过20天确定成活后, 解绑薄膜。到接芽新梢长到20厘米左右时, 再从接芽以上2厘米处彻底剪砧。

十、合理肥水, 及时防病虫

嫁接前后各7天内严禁浇水, 防止土壤水分过多, 造成根压增大, 加重接口伤流, 影响接芽成活, 接后7~10天伤口基本愈合后, 可以浇1次水, 8月中旬追施复合肥10千克/亩以提高苗木木质化程度, 可使用1.0‰的植物动力2003进行叶面喷施, 不仅可以提高嫁接成活率, 同时可以明显提高嫁接后的苗木高度和粗度。

核桃苗期主要受刺蛾幼虫等危害, 于7月下旬至9月上旬进行人工捕杀, 并喷两次有机磷类杀虫剂 (50%辛硫磷1000~1500倍液等) 。

摘要:核桃嫁接苗较难培育, 但只要培育好砧木苗、准确把握嫁接时机、选好接穗、削好接芽、正确切削砧木、严格绑缚、操作快速、接口遮光防雨、及时除萌剪砧、合理肥水, 各个环节层层把关, 对春天已平茬的核桃苗, 进行初夏方块芽接, 当年可获得优质嫁接苗。

关键词:核桃,方块芽接,要点

参考文献

[1]张玉星主编.果树栽培学各论[M].北京:中国农业出版社, 2005:303-305.

[2]孔祥戥, 王继龙.提高核桃嫁接成活率试验.中国南方果树, 1997, 26 (1) :46-47.

[3]李保国, 齐国辉, 张雪梅.不同部位芽片对核桃方块形芽接成活及生长的影响.西北林学院学报, 2007, 22 (6) :56~59.

[4]刘玉仓, 杨满宏.核桃方块芽接试验[J].山西果树, 2000, 2:8-9.

世界小心,方块来袭 篇4

二维码是什么? 虽然二维码现在比较“火”,但其实这种类似的编码早就出现啦,那就是我们常见的条形码(也称“一维码”)。二维码上的黑白方块看似杂乱无章,其实是采用二进制方式将数据通过图形编码。条形码上只用矩形的宽度记载数据,长度并不记载(条码长度仅是为方便扫描机读取而设置的);而二维码的长度和宽度都记载着数据。因此与条形码相比,二维码包含的数据比条形码要复杂得多:照片、声音、文字、网页链接甚至人的指纹,都可以被记载其中。而且二维码的错误率更低,存储信息更可靠。

二维码和它的兄弟们

目前,应用最多的二维码是QR码,我们也常常将QR码直接称呼为“二维码”,但其实它只是二维码家族中的一员。让我们一起来认识其中的一些成员吧!

PDF417码:它也是二维码的一种,但却是长方形的。它能容纳很多数据,并且可用机器自动识读。主要应用于物流运输、登机牌、身份证和仓库管理。

Aztec码:特征是定位点设在中心,其最大数据容量为3832个数字或3067个字母。

汉信码:这是我国自主研发的二维码,汉信码最多能够容纳7829个数字、4350个字母或2714个汉字。

QR码:全称为快速响应矩阵码,因为识别速度快而被广泛应用。特征是正方形的三个角各有一个“回”字形图案。存储字母时,数据容量为4296字符。

DM码:这是目前所有条码中最小的,尤其适用于小零件的标识以及直接印刷在物体上。

扫一扫,为何能解读二维码?

你注意到二维码(QR码)上的三个“回”字形图案了吗?它们是每个二维码都有的定位点,其实在二维码图案中还隐藏有小的定位点。当用安装有二维码解读程序的设备(如手机、平板电脑等)扫描二维码时,我们需要将二维码对准扫描框,其实这是为了对准定位点,以便设备对图像进行定位和识别。二维码就像我们看不懂的密码,而扫描设备却拥有破译的“钥匙”。二维码还有容错机制,即使二维码有污损失去了部分图案,只要定位点还在,程序就能逆推出全部的数据。所以利用这个特性,二维码可以变成各种颜色,也可以在上面加图片。

注意:虽然我们生活中已经离不开二维码,但扫描二维码仍要慎重,随意扫描陌生来源,或陌生人提供的二维码,可能会打开含有病毒的链接!扫描前请确认它来自可靠的网站或产品!

Delphi开发俄罗斯方块游戏 篇5

关键词:Delphi语言,俄罗斯方块,游戏

1引言

俄罗斯方块游戏是一种众所周知的游戏, 它为开发小游戏类的软件具有很好的借鉴作用, 它的构思、设计反应了常规游戏软件开发的通用思路。本游戏通过操作不同的方向键控制方块的平移、加速、 旋转变形等来改变俄罗斯方块的运动方向和运动状态, 它是一款休闲、小巧类的游戏, 界面如图1所示。

2设计思路

利用Delphi开发俄罗斯方块游戏, 借鉴了常规游戏软件的开发思路, 其界面如图1所示。本游戏开发思路如下:

(1) 定义了俄 罗斯方块运 行的区域Glass Width和Glass Height, 运动的方 块大小数 组TFigure Worksheet, 方块的形 状样式Triada, LCorner, RCorner, LZigzag, RZigzag, Stick, Box, 其中用“1”表示显示指定的颜色 ,“0”表示与 背景色相 同。再定义一些常量如方块的大小和运动方向TMove Direct等。

(2) 当运行该 游戏程序 的时候 , 系统首先 在创建窗 体的同时, 就部署好按钮的位置、游戏区域的位置, 信息显示的位置, 设定运动区域的颜色。这样有一个好处, 不管显示器屏幕怎么调整, 游戏界面各部件的相对位置不变。

(3) 当开始游戏 的时候 , 单击游戏按 钮操作键 , 触发不同的事件如向下, 向左, 向下, 在这些事件中, 编写不同的代码控制俄罗斯方块的运动状态。在游戏运行过程中还必须考虑边界碰撞、方块堆积和消沉的问题等。这些通过编写一些函数或过程来实现。

3实现代码

3.1游戏参数定义类代码

3.2创建窗体时初始化窗体界面代码

3.3控制俄罗斯方块运动状态的代码

4结语

预制砼空心方块吊装施工技术 篇6

某地区重力式码头段护岸工程基础采用了抛石基床, 该段护岸岩层较浅, 抛石基床直接座于岩层上。基床上部为预制空心方块墙体, 分上下两层布置, 下层预制砼空心方块高2.5m, 上层预制砼空心方块高3m, 壁厚0.5m, 底板厚0.6m, 墙身宽4.7m, 墙身宽5.7m.顺水流方向每块长度2.5m。下层预制空心方块每块重约55t, 下、上层预制空心方块每块重约45t, 墙身后进行反滤设计, 依次回填抛石棱体、二片石、碎石、及混合料。空心方块上部为现浇钢筋砼卸荷板, 厚度为0.8m。

2施工工艺流程

2.1空心块基本几何尺寸

本工程预制构件包括:预制混凝土空心块 (纤维) 共520块, 分下、上两层安装, 安装底标高为120.0m, 底部空心块尺寸为:2.48m (宽) ×5.7m (长) ×2.5m (高) , 顶部空心块尺寸为:2.48m (宽) ×4.7m (长) ×3m (高) , 空心块浇注之后达到一定强度后方能安装。

2.2安装顺序、总体安装步骤

2.2.1安装顺序

测量放线、标定内、处侧边控制线、安装底部空心方块、校核安装位置、安装上部空心方块, 校核位置、方块内填石。

2.2.2总体安装步骤

(1) 施工准备。安装准备前, 基床上进行测量放线, 利用基床整平用的钢轨做为平面控制线, 在基床整平时对其精确定位, 让其距离空心块安装立墙线1.5米, 以防安装时空心块对其产生碰撞而发生位移。影响安装精度。

吊装机械行走通道铺筑, 因吊装机械本身自重及吊装重量, 对临时通道承重能力要求很高, 拟采用风化碎石对道路进行铺筑, 铺筑要求同空心方块后侧的土方填筑标准, 填筑厚度平均1米, 即能达到121.5米左右, 如填筑过高, 离吊装工作面过远, 影响吊装机械运行效率。临时路待吊装工程完成后视现场情况:如侵占堆石棱体位置即进行拆除, 如不侵占即做回填料使用。

吊装机械准备2台, 起重量均为220T, 吊装时在127.5高程位置一台, 该设备负责倒运空心方块, 在121.5高程位置放置一台进行空心方块的安装。

(2) 空心方块安装。空心方块达到设计强度后, 在黑龙江进入枯水期时进行空心方块的安装, 先将空心块装车运至安装地点, 每次运输2块, 上、下部各一块。吊装机械采用220T履带式起重机。运至安装现场后再用220T履带式起重机从平板车上将空心块缓缓吊起, 离开平板车后, 旋转起重臂, 至安装位置, 然后缓缓下落就位。

在搁置点处测量标高, 放好预制构件的边线位置, 并利用钢轨作控制线调整底部空心块安装位置, 底部空心块安装、调整就位后, 由测量员测量其垂直度, 如符合安装精度要求, 即可安装上部空心块, 如误差过大, 则将空心块重新吊起, 检查块体几何尺寸、重新平整基础碎石, 再进行安装操作。安装完成后, 一定要用仪器进行安装块的轴线位置检查, 使其安装误差在规范允许范围内, 据此来放出安装位置。搁置点标高如果超限或不平整要预先进行处理。

(3) 安装前对全体操作人员进行安装技术交底。

(4) 对构件型号、质量进行检查, 并在构件端部标出搁置宽度。对吊钩、吊具进行检查。

(5) 安装时, 在现场准备好砂浆, 并准备好一些小铁板做安装时的垫片之用。座浆应饱满, 必须随铺随安。

(6) 安装时统一指挥、统一信号, 按操作规程操作。

(7) 构件就位时, 控制上、下层构件的错位及空隙, 检查搁置点是否密实, 如不符合要求, 反复校正, 直至达到要求。

(8) 构件安装好以后, 及时对方块内进行填石, 固定构件位置。

2.3安装措施

(1) 安装前, 由测量员认真放好安装控制线和抄好安装控制标高, 每次放样完毕后用第二种方法进行校核确保样线无误。根据所抄安装标高将构件搁置面找平找准, 找标高时根据质量标准要求可以将相应的标高抬高1cm;构件位置线标志要清晰易辩, 在安装时标志不得被构件压住确保安装时核对校准。

(2) 单个重量约50吨, 采用2个Φ32mm圆钢吊环, 在起吊运输过程中注意对构件吊环的保护, 不可碰撞、弯折。

安装之前测量组需放好构件安装线, 必要时安装之后再次用测量仪器复核。对安装位置的标高进行测量, 基床顶标高要比设计值高1cm, 防止安装构件有微量的变形下沉, 以保证靠件外沿立面的垂直度, 搁置点标高采取宁低勿高的原则。构件安装之前需准备一些不同厚度的钢板, 不平整的地方局部塞填小钢板。

2.4安装注意事项

(1) 安装前, 要事先将可能相碰撞部分的钢筋 (预制砼模板拉筋) 整理好, 以利于构件安装。

(2) 安装前, 要提前测好搁置面的标高, 放出安装位置线, 如果超限要事先处理好。要特别注意控制好外边线, 要确保其外立面垂直且处在相应的边沿线上, 以保证外沿立面顺直美观。

(3) 准备充足的砂浆, 标号为M35, 由实验室提供配合比;必须事先对砂进行筛选, 清除掉大粒径砂石;构件安装结束立即进行勾缝。

(4) 认真检查构件的型号、质量, 安装时, 要注意构件编号, 按预制时的编号对号入座, 不得“张冠李戴”。安装精度严格按施工规范进行。

3安装质量保证措施

(1) 安装前认真清除预制构件上的残留物及表层多余砂浆等;安装前放好安装搁置线, 安装边线, 抄好安装标高, 以此控制安装精度。

(2) 采用“靠尺铺浆法”铺设搁置处的砂浆, 使其饱满;构件安装后, 立即在搁置处用水泥砂浆勾三角缝, 注意密实、平整。

(3) 安装时要注意预制空心块的保护, 起吊、运输及吊装就位时要慢, 避免由于碰撞产生缺棱掉角的现象。

摘要:重力式码头护岸工程是一项很复杂的水利工程, 特别是预制砼空心方块吊装的工程质量是整个工程的难点和重点。文章介绍了某重力式码头护岸工程的预制砼空心方块吊装施工工艺及质量保证措施, 经实践证明, 该施工技术满足了质量及工期要求。

混凝土方块 篇7

很多编程爱好者都曾经编写过自己的俄罗斯方块游戏, 现在将带领大家一步步实现一个Excel版本的俄罗斯方块。

图1是实现的游戏界面。

首先打开Excel 2007, 新建一个工作簿并将其保存为Excel启用宏的工作簿, 文件名为Excel俄罗斯方块.xlsm, 并将工作表“Sheet1”重命名为“TETRIS”, 作为游戏界面并调整此工作表中的列宽和行宽至合适大小并使其大小一致, 因为在游戏中单元格将被用来组成方块, 如果大小不合适或不一致对游戏的效果影响很大。本例中游戏区域的行宽和列宽都为16像素大小。

1 设置人机界面

1.1 定义游戏区域

操作步骤:

(1) 选中单元格区域E2:R25, 共24行14列, 此区域即为方块的活动范围, 当方块向上累计触及到“TETRIS”工作表的第二行同时也是游戏区域的顶部时游戏结束。

(2) 在编辑栏左端的“名称”框中键入名称“GameArea”并按下“Enter”键。

(3) 对区域“GameArea”左右两边的列以及区域底部下一行单元格进行修饰美化, 采用适当的颜色进行填充, 这些区域将用作方块的“围墙”, 注意一定要使用某种颜色进行填充, 因为这将是判断方块是否能够移动的重要依据, 具体判断方法将会在下面详细介绍。修饰结果如图2所示。

1.2 定义下一个方块的显示区域

(1) 选中单元格区域T15:W16, 共2行4列, 作为显示下一个方块的区域。

(2) 在编辑栏左端的“名称”框中键入名称“NextBlockArea”并按下“Enter”键。

1.3 定义方块数据区域

(1) 选中单元格区域AY3:BF37, 共35行8列, 作为存储游戏中方块的初始位置数据及旋转数据的区域, 游戏进行时将从中读取相关数据, 以产生和旋转方块。

(2) 在编辑栏左端的“名称”框中键入名称“BlockDataArea”并按下“Enter”键。

本区域中存放每种方块的初始位置数据以及旋转数据, 这些数据也可以在代码中直接对相应变量进行赋值, 但是会增加很多的代码量且很不直观, 这里采用代码从此区域读取数据来初始化各方块, 能克服以上缺点。

1.4 添加两个Shape

游戏中每当方块积满一行要进行消行加分的操作, 因此游戏界面中需要有显示当前分数和最高分数的区域与用户交互, 为了增强美观性, 这里采用Shape来作为分数显示的载体。在游戏主界面中插入4个Shape, 并分别对其进行修饰美化, 显示当前得分的Shape和显示最高得分的Shape分别命名为“CurrentScore”和“HighScore”。如图3所示。

1.5 添加“开始”和“结束”按钮

在游戏主界面中插入2个Shape, 并分别对其进行修饰美化, 编辑文字“开始”和“结束”, 为玩家提供开始游戏和结束游戏的功能 (如图4) 。分别为其指定宏“StartGame”和“StopGame”。

至此实现的游戏界面如图5所示。

2 定制方块数据

在俄罗斯方块游戏的实现过程中, 对俄罗斯方块的抽象以及数据结构的设计是整个过程的核心。

2.1 创建数据结构

经典的俄罗斯方块游戏中共有7种典型类型的方块, 分别如图6所示。

从图6中可以看出每一种类型的方块虽然形状各异, 但是都有一个共同的特点就是它们都是由小方块所组成的并且小方块的数目都是4个。因此, 为了建立描述俄罗斯方块的数据结构, 有必要首先建立一种数据结构来合理地描述这些小方块。每个小方块仅有两种属性, 即其在游戏区域中所处的行和列。创建表示小方块的自定义数据类型SmallBoxPos结构如下:

其中Integer型变量Row存储小方块当前所在的行, Column变量存储小方块当前所在的列。

在玩家按下向上键时方块会顺时针旋转90度, 这时方块的形状会发生变化, 同时各个小方块之间的相对位置也会发生变化, 各方块的变化情况如图7所示。图7中左边一列的1-7表示七种类型的方块, 顶部的1-4表示每种方块的四种旋转状态。从图7中可以看出, 每种方块都有四种不同的旋转状态 (第一种方块只有两种状态和第二种方块只有一种状态) , 每按一次向上方向键, 方块便会向下一个状态变化, 当第四次按下向上键时方块会回归原来的状态, 第一种方块和第二种方块同样适合此规律。如此周而复始。

根据上面的叙述, 下面创建自定义数据类型TetrisBox来表示俄罗斯方块。

(1) 首先一个方块是由四个小方块组成的, 所以TetrisBox结构中应包括一个SmallBoxPos类型的数组, 数组元素个数应为4个, 分别代表其包含的4个小方块。

(2) 为了进行方块是否能够继续下落或移动的判断, TetrisBox结构中应包含当前方块在下一个位置时的各个小方块的位置信息, 这些信息同样由SmallBoxPos类型的数组来存储。这里的下一个位置不仅仅是指方块下落时的下一个位置, 方块左移、右移、旋转等等都属于下一个位置的范畴, 只要方块的形态或位置发生了变化, 则新变化的信息都将暂存到这个数组中。

(3) 每种方块有4种旋转状态, TetrisBox结构中应包含一个Integer型变量来标识方块当前所处的旋转状态。

(4) 在玩家按下向上键时方块会进行旋转变形, TetrisBox结构中应包含支持其进行旋转变形的数据, 这些数据可以由一个二维数组进行存储, 其中第一维存储方块旋转状态, 第二维存储每一种旋转状态下的小方块的信息。

(5) 游戏中应采用一定的标识来区分不同种类的方块, 本例中采用颜色作为不同种类方块的标识, 所以TetrisBox结构中应包含一个Integer型变量存储方块的颜色。

(6) 此外TetrisBox结构中还应包含一个Boolean型变量来存储当前方块是否已经停止下落。

综上所述, 创建自定义数据类型TetrisBox如下:

其中Integer型变量Color存储方块的颜色, Boolean型变量HasStopped存储方块是否已经停止下落, SmallBoxPos型数组SmallBoxInCurrentBlock (1 To 4) 存储当前方块中每个小方块所处的行和列的信息, SmallBoxPos型数组SmallBoxInNextPos (1 To 4) 存储方块在下一个位置时的每个小方块所处的行和列的信息, CurrentRotateState存储当前方块所处的旋转状态, SmallBoxPos型二维数组RotateChangeData (1To 4, 1 To 4) 存储实现方块旋转所需要的数据, 其中前面一维1 TO 4代表第一至第四四种旋转状态, 后面的一维分别代表四个小方块。

2.2 定制俄罗斯方块数据

BlockDataArea区域存放各种方块的初始位置数据及其向下一个旋转状态进行变化所需的支持数据, 程序根据这些数据可以得出此方块下一个旋转状态时的形状。

此区域共35行8列, 游戏中共有7种方块, 每种方块对应BlockDataArea区域中的5行数据, 其中第1行为该种类型方块出现在游戏区域顶端的位置即各个小方块出现在游戏区域顶端时所处的行和列, 下面4行分别为方块在四种状态之间进行变化时各个小方块所处的行和列的变化情况, 通过这些行列变化信息, 在程序中可以很容易地计算出下一个状态时的方块形状。

(1) 方块初始位置数据的填充

每种方块共有4个小方块, 位置分为行和列。所以将BlockDataArea区域的8列分为两部分, 前4列分别代表1、2、3、4号小方块出现在游戏区域的行, 后面4列分别代表各小方块出现在游戏区域的列。

下面以第一种方块做解释 (如图8) 。

方块出现时应在游戏区域顶端的中部位置, 此方块为一横杠, 只占据一行, 所以其1、2、3、4号小方块出现时都将处在游戏区域的第一行, 因为定义的游戏区域共有12列, 所以其各个小方块应相应出现在游戏区域的第5、6、7、8列才能保证整体方块出现在游戏区域顶部中间位置。分别将1、1、1、1、5、6、7、8填入相应单元格, 这些数据将在初始化方块时被读取并存储到相应变量中。

第三种方块的初始行列数据如图8所示。

其他方块的初始位置数据由此类推即可。

(2) 方块旋转支持数据的填充

因为每个方块都是由同样数目的小方块组成, 每个小方块都有所处的行和列两种属性, 而在方块旋转变化时, 小方块的这两种属性也会跟着变化, 可以通过对这些小方块的行和列的增减情况进行描述来得到整体方块的状态。

下面以第一种方块的变化情况进行分析。

当方块进行第一次旋转, 由第一种状态变为第二种状态, 1号小方块所处的行减少了1, 列增加了1, 将-1和1分别填入BlockDataArea第二行的行和列部分的第一个单元格中。2号小方块的行和列均没有变化, 因此将0和0分别填入BlockDataArea第二行的行和列部分的第二个单元格中。3号小方块所处的行增加了1, 列减少了1, 将1和-1分别填入BlockDataArea第二行的行和列部分的第三个单元格中。4号小方块的行增加了2, 列减少了2, 将2和-2分别填人BlockDataArea第二行的行和列部分的第四个单元格中。

当方块继续旋转, 由第二种状态变为第三种状态时, 1号小方块所处的行增加了1, 列增加了2, 将1和2分别填人BlockDataArea第三行的行和列部分的第一个单元格中。2号小方块的行没有变化, 列增加了1, 因此将0和1分别填人BlockDataArea第三行的行和列部分的第二个单元格中。依次类推完成本次旋转数据的输入。

第一种方块全部数据完成的结果如图10所示。

同样操作完成所有7种方块数据的输入, 结果如图11所示。

完成方块数据的输入后, 下面介绍如何在程序中通过读取这些数据对方块进行初始化。

因为本例中共使用了7种不同的方块, 故定义TetrisBox型数组Blocks (1 To 7) 表示这7种方块。定义如下:

对Blocks (1) 至Blocks (7) 各方块进行初始化即是读取BlockDataArea区域的数据并对相应变量进行赋值的过程, 实现代码如下:

3 代码实现

俄罗斯方块的游戏过程是:用户点击“开始”游戏按钮, 从游戏区域的顶部开始不断地落下各种形状不同的方块, 并同时产生下一个将要出现的方块供用户参考。用户可以通过按下不同的方向键来操作下落中的方块, 使其左移、右移、旋转变形或者加速下落, 当方块停止下落时检测是否有填满的行, 如果有要进行消行并给予用户一定的分数奖励。如果方块触及到了游戏区域的顶部则游戏结束。

整个游戏过程分为两大部分:

(1) 正常的游戏流程, 即在没有用户操作的情况下, 方块将不断下落直至停止, 然后产生新的方块并重复这个过程直至方块触及到游戏区域顶端, 则游戏结束。

(2) 玩家操作流程。下落中的方块在玩家操作下会产生左移、右移、旋转、加速下落等效应。这一流程独立于上一部分, 即在没有用户操作的影响下, 俄罗斯方块游戏也会继续进行, 只是方块只能持续不停下落而少了上述的变化及移动。

由上面的分析中可以看出, 实现一个最基本的俄罗斯方块游戏需要实现以下过程或函数, 如表1所示。

根据活动单元格的变化得到用户输入并执行相应动作

下面就是俄罗斯方块游戏的流程图, 如图12所示。

“Alt+F11”打开VBE编辑器, 双击工程资源管理器中Sheet1对象打开代码窗口, 在其中定义程序中将要用到的变量及自定义数据结构如下:

3.1 开始游戏

开始游戏过程首先清除GameArea区域, 将当前分数清0, 并将基准单元格Cells (21, 21) 激活, 为使用Worksheet的SelectionChange事件得到用户输入提供基础。初始化各方块并产生第一个方块。设置游戏速度并根据速度建立游戏循环。在游戏循环中, 方块不断下落, 下落停止后继续产生下一个方块继续循环。游戏结束后判断当前得分是否高于最高得分, 如果高于则对最高得分进行修改。

如果当前方块已经停止下落, 则将上次产生的下一个方块用作当前方块, 同时产生下一个方块继续循环。

3.2 产生下一个方块

在当前方块开始下落的同时随机产生下一个方块, 将产生的方块的序号存入变量PreNextBlock中, 当前方块下落停止时将刚刚产生的方块用作当前方块开始下落, 如此进行重复循环直至游戏结束。产生下一个方块实质上就是产生一个1-7的随机数, 因为只有7种不同类型的方块。用代码表示即为:

这里要注意有个特殊情况, 即在游戏刚开始进行的时候, 在游戏区域中出现的第一个方块是没有上一个方块可以继承的, 采用TempBlock=Blocks (PreNextBlock) 来得到第一个方块就会出现错误, 因此对第一个出现的方块来说, 它的产生也是随机的。要判断是否为第一个方块只要检测PreNextBlock是否为0即可。

如果PreNextBlock变量为0, 说明游戏刚开始进行, 将要产生的是第一个方块。

这一段代码的功能为画NextBlockArea区域。

其中Range.BorderAround方法向单元格区域添加边框, 并设置该新边框的Color、LineStyle和Weight属性。它的表达式为.BorderAround (LineStyle, Weight, ColorIndex, Color) , 参数如表2。

将当前方块中所有小方块在下一个位置时相应所处的行和列赋值为在当前位置时所处的行和列。

3.3 方块下落过程

从图13中可以看出, 方块下落实质就是将组成方块的每一个小方块所处的行加1列不变, 并根据新的方块位置信息重画游戏区域。描述起来很简单, 但是这一过程在整个游戏程序中是相当重要的一部分, 因为游戏中的方块在定时器的作用下是不断下落的, 并且在这一过程中要涉及到方块是否可以继续下落、检测是否存在满行、检测游戏是否结束, 包含模块众多。实现这一部分整个游戏的雏形就完成了。

方块下落过程的流程图如图14所示。

下面是这一过程的代码:

如果方块可以移动, 则重画游戏区域。注意这时当前方块所处的位置要进行消除, 并重新绘制方块在下一个位置的形态。

3.4 检测方块是否能够移动

要检测一个方块是否能够移动, 只要检测其将要移动到的下一个位置是否已经有了别的方块或者碰到了围墙区域, 在本例中这两者都可以用检测下一个位置的单元格的颜色是否为xlNone来判断, 如果不是, 说明其下一个位置已经有了别的方块或碰到了围墙, 不能继续移动。图15中的第一种情况即是如此 (其中方块1’, 2’, 3’, 4’分别代表方块1、2、3、4的下一个位置) 。但是采用这种方法判断是不全面的, 如图15中的第二种情况, 当前方块2的位置和方块1的下一个位置1’重合, 如采用上面的判断方法将得出其不能移动的结论, 这样显然是错误的。因此在上面判断方法的基础上需要一种能够检测当前方块处在下一个位置是否和当前方块有重合, 如果没有的话则可以继续移动, 在本例中采用将当前下落方块中每个小方块所处的单元格的ID属性设置为一特殊值来作为判断有无重合的标志。具体实现方法如代码中所示, 这里注意在判断完毕后应将设置的ID属性恢复, 否则游戏会出错误。

3.5 检测是否满行

要检测当前游戏区域中是否存在满行的方块, 可以从游戏区域的最底一行开始, 循环检测当前行的每一个单元格的填充颜色是否为空。如果有一个或者更多的单元格为空则代表此行没有满行, 如果全部都不为空则代表此行已满, 然后进行消行加分的操作。如此不断向上面的行循环直到游戏区域的顶端行。

如果满行则要进行消行的操作, 实质就是将本行颜色值清空, 然后再将上面每一行的颜色值依次填充到下面一行。

作用:检测某行是否已被填满

IIf函数根据表达式的值, 来返回两部分中的其中一个。在上面的代码中如果Range ("GameArea") .Cells (Row, TempColumn) .Interior.ColorIndex<>xlNone成立, 则IsFullRow的值为True, 否则为False。

3.6 画游戏区域

3.7 检测游戏是否结束

俄罗斯方块游戏中当游戏区域中的方块接触到了游戏区域的顶部时游戏便会结束。如图17, 在这个状态下, 下一个方块即蓝色的田字型方块一出现便会接触到游戏区域顶部, 这时游戏就结束了。

3.8 加分

3.9 游戏结束

因为在StartGame过程中是根据IsGameOver的值是否为假来确定是否进行游戏循环, 如下代码:

如果要结束游戏, 只要将IsGameOver的值置为True即可。

至此, 一个基本的俄罗斯方块已经完成, 单击“开始”按钮, 从游戏区域顶部开始出现方块并以固定的速度下落, 下落至底部, 重新产生一个方块继续上述过程, 直至游戏结束。但是, 这时的方块是不受控制的, 因为上面的代码中还没有加入用户操作控制的部分, 对俄罗斯方块进行控制是通过上下左右四个方向键来完成的, 向上键为旋转变形, 向下键为加速下落, 向左向右分别为向左和向右移动一个单元格。这里使用Worksheet的SelectionChange事件来辅助完成这一功能。Worksheet.SelectionChange事件当工作表上的选定区域发生改变时发生此事件。它带有一个必选的Range类型的参数Target表示新选定的区域。

在StartGame过程中将Cells (21, 21) 激活, 将此单元格作为基准单元格, 在SelectionChange的过程中检测新选定的单元格的行和列, 如果新单元格的行为20, 则代表玩家按下了向左的方向键, 程序执行方块左移的操作;如果检测新单元格的列为20, 则代表玩家按下了向上的方向键, 程序执行对方块旋转变形的操作, 其他按键依此类推。

下面是这一过程的流程图, 如图18所示。

从上面的代码中可以看出方块下落的速度快慢完全取决于GameSpeed的值, 因此只需将GameSpeed的值减小即可达到加速下落的效果。

至此一个最基本的Excel俄罗斯方块游戏已经完成。大家可以在此基础上继续扩展, 编写出功能更加强大, 方块种类更加丰富的俄罗斯方块。

4 结语

混凝土方块 篇8

关键词:俄罗斯方块游戏,基本型方块,旋转型方块,枚举,算法

1“枚举算法”概述

本文则提出了所谓枚举算法,就是直接枚举出游戏中方块的基本形状和它们的旋转形状,然后控制每一种不同形状的方块在游戏中的产生、移动、旋转、落下、清除填满行等游戏过程。

1.1 方块基本形状和种类

根据分析,“俄罗斯方块游戏”中的方块,共有七种基本形状,它们分别是“I型”、“L型”、“反L型”、“Z型”、“反Z型”、“口型”、“T型”,如图1。

1.2 方块的旋转形状

游戏过程中,每一种基本方块都要做旋转控制,于是就产生了旋转后的方块形状,本文将其称为“旋转型”。

基本型中的“I型”、只有一种旋转型,即由竖直旋转90°后成为水平。因此,基本型加上一种旋转型,共有两种形状。

基本型中的“L型”和“反L型”有三种旋转型,将它按顺时针每旋转一个90°就产生

一种旋转型,它可以旋转三次,得到三种不同的旋转型,因此,它的三种旋转型加上其基本型,“L型”和“反L型”方块分别有四种形状。

基本型中的“Z型”和“反Z型”可以顺时针旋转一次90°,加上他们的基本型分别有两种形状。

基本型中的“T型”有三种旋转型,将他按顺时针旋转一个90°就产生一种旋转型,它可以旋转三次,得到三种不同的旋转型,因此,它的三种旋转型加上其基本型,“T型”方块共有四种形状。

基本型中的“口型”方块没有旋转型,在游戏中只有一种形状。

经前面的分析得知,七种基本型方块,因旋转产生了不同的旋转型,这些旋转型加上他们的基本型,整个游戏中,共有19种不同的方块形状。

2 基本型方块的构成和控制

每一种基本型方块都由4个正方形小方块构成,利用小方块不同摆的放位置,产生19种旋转型。利用随机函数在一个预览窗中提前展示形状供用户参考,然后将展示的形状复制到游戏主窗口中进行摆放,在游戏主窗口中用户就可以使用键盘的方向键来控制方块的运动。然后对每一行进行判断,如果有某行的方块是满的,则消除这行的方块,并且使上面的方块自由下落,其中,方块向下的速度是有时钟控件控制的,在游戏中,用户也可以使用“向下光标键”加快下落速度,定义一个变量,对消除的函数进行记录,最后就可以得出用户的分数,用if语句对分数判断,达到一定的积分就可以升级到下一个档次。

2.1 基本型方块的够成

所谓“基本型方块”是指每新产生的,没有经过旋转的方块形状(如图1),基本型方块是有4个正方形的小方块拼接而成。在程序实现过程中,可以使用4个正方形控件来构成每一种基本型方块。

2.2 主游戏界面与数据结构设计

为了能实现控制方块的旋转、平移、下落等操作。需要构造一个游戏主窗口和一个二维矩阵数据结构。

2.2.1 主游戏界面

在主窗口中按照9X15,将小方块(控件)进行排列,每一个控件的Visible属性设置成“False———不可见”,表示在开始游戏之前,主界面中没有任何方块。左上角作为坐标起始点,为了在程序中,对主窗口中的每一个小方块(正方形控件)进行遍历,用数字字符给控件按照一定的规则进行命名如图2。

正方形控件的名称=行坐标*每行控件的数量+列坐标=行坐标*9+列坐标

2.2.2 构造一个大小为9X15的二维数组

用来保存对应主界面中的每一个方块位置是否被填充,已经被填充的为“1”,未填入的为“0”。通过这样的方法,即可简单地将数据结构映射到由小方块(正方形控件)组成的图形界面上。

2.2.3 小方块的初始化显示

在游戏开始或者前一个方块已经不能继续下落的时候,需要在主界面的第一行(行坐标为0)、第五列(列坐标为4)的位置显示某一个基本型方块。这个功能由计算机产生一个1~7随机数,表示7中基本型方块的某一种,然后枚举出基本型方块初始时,在主界面中的位置,并把主界面中,对应的小方块(正方形控件)的Visible的值修改成“True(可见)”。例如:随机数为2,对应“L型”方块,它对应坐标为(0,4),(1,4),(2,4),(2,5),根据控件命名规则,可以计算出主界面中需要修改的控件名称分别为“4”、“13”、“22”、“23”。如图3。

小方块初始化算法:

3 方块的下移、平移、旋转

基本型方块初始化产生后,还需要用变量保存它的形状代码shape、旋转型rot和在主界面中的起始行坐标row和列坐标column,例如图3中的“L型”方块:

3.1 方块的下移

1)下移的合法性判断:方块下移的前提是,方块没有到达最底部,这可以通过行坐标row<14来判断,方块下移时要通过的位置没有被前面的方块填充,这个需要通过与主界面一一映射的二维数组相对应的单元是否为“1”来判断,如果以上条件合法,则,方块下移。

2)下移的实现:方块下移也是通过修改主界面上的小方块(控件)的Visible属性来实现的。例如图3中的“L型”方块下移一格,需要修改控件:

控件4.visible=false;控件23.visible=false;

控件31.visible=true;控件32.visible=true;如图4。

3.2 方块平移

方块的平移包括左移和右移两种情况,无论那种情况都要首先进行合法性判断。

1)合法判断,平移的合法性判断比较简单,只需判断它旁边相邻位置是否被填充为,可以通过对映射二维数组中相对应的单元是否为“1”来实现,同时也要判断是否已经到了左右边界。

2)平移实现,方块平移也是通过修改主界面上的小方块(控件)的Visible属性来实现的。例如图4中的方块左移一格,需要将“13”、“22”、“32”控件的visible=false;“12”、“21”、“30”控件的visible=true即可。

3.3 方块旋转

1)合法性判断,在游戏中,方块做顺时针旋转,每次旋转90°,方块旋转前的合法性检查稍微要复杂一些,主要涉及到它旋转所要经过的位置不能有已经填充的方块。

例如图4中的“L型”方块旋转前(顺时针90°),必须检查“21”、“30”、“14”、“23”处没有被填充方块,这个检查也是通过对二维数组中相对应的单元是否为“1”。来判断。

2)旋转的实现,当合法性检查后,就可以通过修改相关位置的控件visible值来实现旋转。方法和平移、下落一样。

3.4 算法实现

从前述所知,游戏中7种基本型方块加上他们的旋转型方块总共有19种类型,程序算法只需要根据他们的形状代码shape、旋转型rot,在主界面中的行坐标row和列坐标column,每做一次平移、下落、旋转,要跟踪修改他的shape、rot、row,column等值,为下一次操作提供枚举依据,然后用代码对每一种情况进行处理即可。

由于篇幅有限,这儿没有给出全部源代码,有兴趣的读者可以与本文作者联系索取完全编译通过的源代码

参考文献

[1]唐凯军,汤惠莉.80例上手VB6编程[M].济南:山东电子音像出版社,2004.

[2]韦纲.FlashMX2004多媒体课件制作教程[M].北京:海洋出版社,2005.

俄罗斯方块问题 篇9

乙:玩过.手机、电脑、电视上都可以找到.

甲:那么,你能凭借记忆把所有不同类型的俄罗斯方块画出来吗?

乙:我试试.是不是下面这些?

甲:非常漂亮!所有不同类型的俄罗斯方块一共有7种,每个都是由4个单位正方块拼成的,因此,7种类型的总面积是28.

乙:我这里有一个问题:能不能用这些形状的基本块,拼成一个4×7的矩形?

甲:我试试看.好像不行,你能拼出来吗?

乙:下面的这个图形是用7种类型拼成的,已经非常接近矩形了,但毕竟未能成功.我们可以用数学方法证明问题的答案是否定的.事实上,若把4×7的矩形染成黑白两色,除了T型的方块之外,每个单元都恰好占据了2黑2白,而T型的单元必然是3黑1白或3白1黑,因此不能保证4×7的矩形中黑白两色的数目相同.

甲:我上次在一本课外书上看到一个类似的问题:老吴院子里铺了 34 块正方形地砖, 留了两块空位种树. 老吴想换新地砖, 但装修店内缺货, 只剩下长方形的, 一块新砖恰好能盖住两块旧砖. 老吴想:“这可巧, 我只要买 17 块新砖不就结了?”请问他的想法正确吗?

乙:这个问题的解法和上面一样.我们用黑白两色给这个6×6的方格染上颜色,则黑白各有18块.其中两个种树的空位恰好都是白色.如果用1×2的瓷砖去铺,不管怎么放置,每块一定覆盖一黑一白,17块瓷砖只能覆盖17黑和17白,而现有的34块方格中,有18黑16白,所以不能完成任务.

甲:生活中有些问题看上去截然不同,但是解决的办法却是类似的.就算是打游戏,只要学会思考,总有新的发现.

教师点评:作者采用对话的方式写成一篇短小精干的小论文,有内容,有方法,有总结,有提高,能反映出他们都是爱思考的同学.文章中介绍的方法在数学中叫作“染色法”,是数学的一个有趣的分支——图论——的基本方法,同学们知道的“一笔画问题”“邮递员问题”都属于这个分支,值得你们将来去探索.

(指导老师:叶 军)

马未都:方块字最能代表国家形象 篇10

这是一个天大的好事,表明中国今日之能力。改革开放三十年来,中国人以勤勉坚韧聪慧发愤图强,一代人就改变了过去大而弱的形象,在世界舞台上焕然一新。

据新闻说,30秒的广告片集纳了50多位名人,这么一算,每人也就有半秒的露脸时间,这50多人绝大部分是国人耳熟能详的文体明星,而对于不熟悉中国文体的外国人来说,观看这样的片子恐有困难。我们的文化就喜欢堆砌。似乎每件事都是人越多越好,人海战术在中国人心目中为第一等战术,谁让我们是世界上人口第一大国呢!

代表国家面貌的明星固然重要,但平民百姓的面貌更为重要。我曾看过一张西方人拍摄于民国初年灾荒的照片:一群灾民注视着镜头,文字说明这样写道:“几万人毫无目的地流动,不见一个人脸上有笑容。”其震撼力不可名状。今天,如果我们要向全世界打造“国家形象”,是否更应该注重平民百姓的精神面貌呢?

上一篇:油井产能下一篇:持续更新