把网上两个开源的俄罗斯方块,整合到一起了,开发环境vs2012+.net 4.0,有问题、建议可以加群沟通哦

复古的 c#写的一个俄罗斯方块小游戏,友好的人机交互,具体功能如下:
1.游戏分七个关卡,通关后还有通关加分。
2.有卡通背景图。
3.有背景音乐和音效。
4.有得分排行榜。
5.能手动更换游戏背景图和背景音乐
6.能自定义游戏控制键。 贴出一段核心代码,如何消行的,本个俄罗斯方块的核心就是 对于 &|>>^4种位运算符的运用,也是我整合这两个俄罗斯方块 的亮点,欢迎大家提出改进意见
    /// <summary>
/// 查找已被填满的行
/// </summary>
/// <returns></returns>
public List<int> FindFullLines()
{ //清空原暂存表
fullLines.Clear();
keepLines.Clear();
List<Position> reDrawPosList = new List<Position>();
//从最底行开始检查是否有消除行
for (int y = this.YBlocks - ; y >= && arrBitBlock[y] != bitEmpty; )
{
if (arrBitBlock[y] == bitFull)
{
for (int x = ; x < xBlocks; x++) //消除该行的block
ArrayBlock[x, y] = null;
SquareBlock[] arr = null;
//将该行之上的block下移,如果到顶则不执行
for (int i = y; i - >= ; i--)
{
//记录最高的 图形
arr = new SquareBlock[];
for (int x = ; x < xBlocks; x++)
{ if ((arrBitBlock[i - ] & ( << x)) != ) //如果上方有block {
this.ArrayBlock[x, i] = this.ArrayBlock[x, i - ] == null ? null : this.ArrayBlock[x, i - ].Clone() as SquareBlock; ArrayBlock[x, i - ] = null;
reDrawPosList.Add(new Position(x, i)); //ArrayBlock[x, i] = ArrayBlock[x, i - 1].Clone() as SquareBlock;
}
}
arrBitBlock[i] = arrBitBlock[i - ];//转移监控位
} destroyLines++;
fullLines.Add(y - fullLines.Count()); }
else
{
keepLines.Add(y - fullLines.Count());
y--;//当消除一行后指针不下移,当没有消除的时候指针才下移 }
MinY = y - fullLines.Count();
}
return fullLines;
}

参考:  http://download.csdn.net/detail/free722/1883329

参考:http://www.cnblogs.com/tuyile006/archive/2007/05/16/748256.html

c#经典俄罗斯方块 vs2012开发的更多相关文章

  1. 趣味python编程之经典俄罗斯方块

    国庆期间闲不住,用python把经典俄罗斯方块实现了一遍,找到了些儿时的乐趣.因此突发奇想,打算用python写点经典又确实有趣的小程序形成系列.正统编程之余也给自己找点儿乐趣,换个角度写程序. 原计 ...

  2. VS2012开发工具BUG

    发现VS2012开发工具 新建立项目名称长度限制的一个bug, 向导方式名称长度限制56个,但建立好的项目名称长度是可以改的很长很长. 也有想是不是生成程序集的名称会有限制,同样这里生成程序集名称,及 ...

  3. VS2012 开发SharePoint 2013 声明式workflow action(activity)之 HelloWorld

    本文讲述VS2012 开发SharePoint 2013 声明式workflow action 之 HelloWorld. 使用VS2012开发客户化的workflow action是SharePoi ...

  4. 使用VS2012 开发SharePoint 2013 声明式的action(activity) 综合实例

    本文讲述使用VS2012 开发SharePoint 2013 声明式的action 综合实例. 需求同: http://blog.csdn.net/abrahamcheng/article/detai ...

  5. 10款 Mac 经典原型设计开发软件推荐

    在Mac上有大量强大的开发和设计工具,今天和大家推荐10款Mac上的经典原型设计开发工具,原型设计工具是开发者必备的一款工具,无论是网站开发还是移动APP开发,都需要在前期进行严格细致的原型设计,才能 ...

  6. 使用VS2012开发基于Office 2013的AddIn程序

    默认VS2012开发的Office Add是基于2010的,如下所示: 如果你机器上安装的Office版本是2013,那么使用VS2012创建的工程是无法运行的,弹出如下的错误: 那么此时怎么办呢?将 ...

  7. 使用Vs2012开发Metro时在另一台win8平板上调试的步骤

    需求:开发一个metro应用,因为要给平面设计师参谋, 需要将软件安装在win8平板上. 环境:开发机是win8,  win8平板是win8.1rtm , 是用老的win7平板改装的. 步骤: 1:拷 ...

  8. 【经典】Linux开发人员必看资料+工具

    Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核.Linux可安装在各种计算机硬件设备中,比如手机.平板电脑.路由器.视频游戏控制台.台 ...

  9. 初学Qt——vs2012开发环境下的窗体跳转

    最近接了份外快,要求使用vs+qt开发一个简单的数据管理系统.qt开发使用的语言是c++,然而c++只是大一第二学期有教过而已,基本也差不多忘光了,废话不多说,讲下今天遇到的问题吧 如标题所说,窗体跳 ...

随机推荐

  1. zabbix basic concept

    tomcat/mysql/hadoop http://www.linuxidc.com/Linux/2014-06/103776p2.htm http://www.aikaiyuan.com/2993 ...

  2. Spark Programming--Fundamental operation

    max max(key=None) Find the maximum item in this RDD. Parameters:key – A function used to generate ke ...

  3. Ⅰ.net通信指前提

    ①大概搜索了一下,一般提到了这三种居多: Webservice:基于B/S的,可以对外发布方法 Socket:一种网络数据交换模型,Socket接口是TCP/IP网络的API,有三个主要因素:地址.端 ...

  4. HBASE架构解析(二)

    http://www.blogjava.net/DLevin/archive/2015/08/22/426950.html HBase读的实现 通过前文的描述,我们知道在HBase写时,相同Cell( ...

  5. JDK version

    Java 1.2 uses major version 46 Java 1.3 uses major version 47 Java 1.4 uses major version 48 Java 5 ...

  6. iOS 并发编程指南

    iOS Concurrency Programming Guide iOS 和 Mac OS 传统的并发编程模型是线程,不过线程模型伸缩性不强,而且编写正确的线程代码也不容易.Mac OS 和 iOS ...

  7. 每日目标——HTML 头部标签学习 2015-8-27

    <head> <title>bp</title> <meta http-equiv="Content-Type" content=&quo ...

  8. node.js render模板

    在用node组织前端架构和后端的时候,如果不用nginx做反向代理,则会考虑怎么样render模板. 在现有的项目中没有以下几种方式render模板: 1.将.html当做静态文件,如果url定位到哪 ...

  9. iOS系统版本简介

    iOS系统版本简介 ⽬目前iOS设备所⽀支持的最主流操作系统是iOS6,⼤大概占了93%,⽽而使 ⽤用iOS5的iOS设备⼤大概占6%,剩下的只有1%.( 根据苹果的官⽅方数据 ) 从iOS1到现在的 ...

  10. android自动填写短信验证码

    广播类 package com.examp.azuoyoutong.listner; import java.util.regex.Matcher;import java.util.regex.Pat ...