c#经典俄罗斯方块 vs2012开发

把网上两个开源的俄罗斯方块,整合到一起了,开发环境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开发的更多相关文章
- 趣味python编程之经典俄罗斯方块
国庆期间闲不住,用python把经典俄罗斯方块实现了一遍,找到了些儿时的乐趣.因此突发奇想,打算用python写点经典又确实有趣的小程序形成系列.正统编程之余也给自己找点儿乐趣,换个角度写程序. 原计 ...
- VS2012开发工具BUG
发现VS2012开发工具 新建立项目名称长度限制的一个bug, 向导方式名称长度限制56个,但建立好的项目名称长度是可以改的很长很长. 也有想是不是生成程序集的名称会有限制,同样这里生成程序集名称,及 ...
- VS2012 开发SharePoint 2013 声明式workflow action(activity)之 HelloWorld
本文讲述VS2012 开发SharePoint 2013 声明式workflow action 之 HelloWorld. 使用VS2012开发客户化的workflow action是SharePoi ...
- 使用VS2012 开发SharePoint 2013 声明式的action(activity) 综合实例
本文讲述使用VS2012 开发SharePoint 2013 声明式的action 综合实例. 需求同: http://blog.csdn.net/abrahamcheng/article/detai ...
- 10款 Mac 经典原型设计开发软件推荐
在Mac上有大量强大的开发和设计工具,今天和大家推荐10款Mac上的经典原型设计开发工具,原型设计工具是开发者必备的一款工具,无论是网站开发还是移动APP开发,都需要在前期进行严格细致的原型设计,才能 ...
- 使用VS2012开发基于Office 2013的AddIn程序
默认VS2012开发的Office Add是基于2010的,如下所示: 如果你机器上安装的Office版本是2013,那么使用VS2012创建的工程是无法运行的,弹出如下的错误: 那么此时怎么办呢?将 ...
- 使用Vs2012开发Metro时在另一台win8平板上调试的步骤
需求:开发一个metro应用,因为要给平面设计师参谋, 需要将软件安装在win8平板上. 环境:开发机是win8, win8平板是win8.1rtm , 是用老的win7平板改装的. 步骤: 1:拷 ...
- 【经典】Linux开发人员必看资料+工具
Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核.Linux可安装在各种计算机硬件设备中,比如手机.平板电脑.路由器.视频游戏控制台.台 ...
- 初学Qt——vs2012开发环境下的窗体跳转
最近接了份外快,要求使用vs+qt开发一个简单的数据管理系统.qt开发使用的语言是c++,然而c++只是大一第二学期有教过而已,基本也差不多忘光了,废话不多说,讲下今天遇到的问题吧 如标题所说,窗体跳 ...
随机推荐
- Mysql 只导出数据,不包含表结构
mysqldump -u${user} -p${passwd} --no-create-info --database ${dbname} --table ${tablename} > ${ta ...
- C# 字符串的截取和替换
1.取字符串的前n个字符 (1)string str1=str.Substring(0,n); (2)string str1=str.Remove(i,str.Length-n); 2.去掉字符串的前 ...
- php--validate错误信息提示样式
//validate 错误信息提示样式 可以提示错误信息 可以使用jq 自带的属性改变错误的显示的位置,其中element是验证未通过的当前表单元素,error为错误后的提示信息 [注意]:放的位 ...
- Maven实战(一)安装与配置
1. 简介 Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. 如果你已经有十次输入同样的Ant targets来编译你的代码.jar或者w ...
- ArcGIS API for Silverlight 加载google地图
原文:ArcGIS API for Silverlight 加载google地图 using System; using System.Net; using System.Windows; using ...
- ArcGIS API for Silverlight 地图元素点闪烁,线流动显示的处理方式
原文:ArcGIS API for Silverlight 地图元素点闪烁,线流动显示的处理方式 <Grid x:Name="LayoutRoot" Background=& ...
- 在CentOS6.5上安装Tomcat7
Tomcat大本营地址:http://tomcat.apache.org/ 本文使用到的Tomcat7下载地址:http://apache.opencas.org/tomcat/tomcat-7/v7 ...
- SpringMVC自动扫描@Controller注解的bean
若要对@Controller注解标注的bean进行自动扫描,必须将<context:component-scan base-package="包路径.controller"/ ...
- LeetCode Game of Life
原题链接在这里:https://leetcode.com/problems/game-of-life/ 题目: According to the Wikipedia's article: " ...
- 取计算机特征码(网卡MAC、硬盘序列号、CPU ID、BIOS编号)
以下代码可以取得系统特征码(网卡MAC.硬盘序列号.CPU ID.BIOS编号) BYTE szSystemInfo[4096]; // 在程序执行完毕后,此处存储取得的系统特征码 UINT u ...