自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

林老师的专栏

趣味生活 趣味编程

  • 博客(18)
  • 资源 (64)
  • 收藏
  • 关注

原创 C#俄罗斯方块游戏

俄罗斯方块是一款非常经典的老游戏,相比现在的网络游戏和大型游戏而言,俄罗斯方块非常小。不要看似小,要实现俄罗斯方块的全部功能也不容易。先说说涉及的知识点:继承(不同的方块继承于方块类)、多态(每种方块都可以旋转、初始化,但是每种方块的旋转都不一样,采用抽象方法定义)、简单工厂设计模式(由工厂随机创建方块)等。(感谢周勇学员整理了所有资料。)俄罗斯方块分成六个步骤:1.俄罗斯方块

2010-08-23 23:00:00 3813 18

原创 俄罗斯方块之六——窗体设计

6.1  KeyDown事件,当方块不可以下落的时候,我们要处理游戏等级、层数、分数等数据还要把将方块放入二维数组中、下个方块的创建、判断是否结束。6.1.1 创建新的方块,方块类型是随机创建的,增加一个枚举类BlockType,存放方块的所有类型。通过简单工厂得到父类。每种方块的中心颜色和周围以颜色可以自定义。由于画板对象不同,位置不同,需要传入参数。 Code:

2010-08-23 22:41:00 1897 2

原创 俄罗斯方块之五——完善Game类

游戏界面所有的小方块对象都在二维数组SquareArray里面,判断数组里面的从低层到最顶层,每层里面的所有列都有对象则这行消除。5.1在Game类里写个判断是否为满行的方法IsFullLine(int row),传入当前行数。 Code: ///     /// 判断满行    ///     ///     /// 

2010-08-23 22:36:00 1266 1

原创 俄罗斯方块之四——方块子类

父类我们分析完了,现在来看看子类。父类里有两个抽象方法,以L型为例(其他类型同理,不仅7种类型)BlockL子类:4.1首先以0所在的小方块为基础朝北,顺时针旋转。用数字标记的小方块相对位置不变。 (如图)  Code: public override void Init(Direction dir)    {        Squar

2010-08-23 22:32:00 1260 2

原创 俄罗斯方块之三——Block类

小方块有了,我们下一步就要得到游戏中的组合方块,这里创建一个Block类,为游戏中的组合方块类。那这个类有什么属性呢?位置(Location),周围颜色(SurroundColor),中心颜色(CenterColor) 。那么大小(Size)还需要吗,如果需要我们可以通过小方块的位置和数量得到。其实组合方块的Size是不需要的,我们以后的判断都是将组合块的所有小方块循环遍历的。3.1  一个组

2010-08-23 22:27:00 2121 1

原创 俄罗斯方块之二——Game类

用于控制游戏,保存公共字段和方法。在上面我们已经用到了方块的宽度和画板对象,在这里声明为静态的公共成员。 Code: public static Color BackColor;      //游戏区域背景颜色    public static int Side = 20;        //小方块宽度    public static Gra

2010-08-23 22:23:00 1197 2

原创 俄罗斯方块之一——Square类

俄罗斯方块的所有形状都是由若干小方块组成,一般情况下为4个小方块。所以我们创建一个小方块类Square类。有位置(Location),大小(Size),周围颜色(SurroundColor),中心颜色(CenterColor)4个属性,其中Size都一样。这里我们可以在构造方法里面直接赋值。 Code: #region ShowSquare 显示小方块   

2010-08-23 22:20:00 3945 20

原创 我的记事本-C# RichTextBox实例

涉及知识点:1.         文本文件读写2.         Xml文件读写3.         RichTextBox控件的使用功能:用C#实现文件编辑软件(MyNotePad),能进行简单的文本编辑和RTF格式内容的编辑。并能实现文件的打开和关闭,以及软件配置信息的设置与保存等。适合于学习C#的初级和中级程序员。共分三讲,请点击超链查看。我的记事本 第

2010-08-16 13:53:00 3236 4

原创 我的记事本 第三讲:保存配置信息

默认字体、字号、背景色、前景色都是保存在Option.xml文件中。xmlversion="1.0"encoding="utf-8" ?>settings> fontname>微软雅黑fontname> fontsize>20fontsize> fontcolor>Blackfontcolor> backcolor>Whitebackcolor> wordwra

2010-08-16 13:48:00 1282 3

原创 我的记事本 第二讲:基本功能的实现

《MyNotepad》是类似于Word的软件,但没有Word功能那么强大,比记事本略强。《MyNotepad》是练习控件、文件操作的学习软件,而不是一款商业目的的产品。软件的基本功能有字体、字号、字型、对齐、编辑等操作,现在让我们来看看如何实现。l         字体:private void tsbFont_Click(object sender, EventArgs e) {

2010-08-16 13:47:00 4236 17

原创 我的记事本 第一讲:文件的打开与关闭

我的记事本    第一讲:文件的打开与关闭C#操作文件步骤:1.       创建文件流对象2.       创建读写器对象3.       读写文件4.       关闭读写器5.       关闭文件流l         打开文件private void tsmiOpen_Click(object sender, EventArgs e) {  

2010-08-16 13:45:00 3256 17

原创 abstract和virtual方法实现多态的区别

多态就是不同对象对同一个消息的不同相应方式。举例:cut(消息)医生收到cut消息后,执行动手术;理发师收到cut消息后,执行减法;演员收到cut消息后,停止演出。三个不同对象,对同一个cut消息的反应都不同,这就是多态。在C#中abstract和virtual方法都能实现多态。1.用abstract修饰方法是抽象方法,没有方法体,该类必须声明为abstract c

2010-08-14 17:30:00 1746 8

原创 值类型与引用类型

C#中数据类型分为:值类型和引用类型。值类型包括:结构体、枚举引用类型包括:类、接口、数组、委托值类型源自System.ValueType,每个值类型的对象都有一个独立的内存区域(栈区)保存自己的值。引用类型源自System.Object,对象一般存储在堆区,而引用变量名存储在栈区。装箱:值类型--->引用类型拆箱:引用类型--->值类型int i=20;objec

2010-08-14 17:15:00 824 3

原创 结构体和类的区别

相同:1.可以包含字段、方法2.都可以实现事件   不同点(结构体):1.数据类型:值类型2.不可以继承3.不可以有默认构造方法,但始终能使用4.可以添加构造方法,但是必须带参数5.可以不用new创建对象6.字段不可以赋初值7.带参数构造方法中必须对所有的字段初始化不同点(类):1.数据类型:引用类型2.可以继承3.不写构造方法,系统自动

2010-08-14 17:12:00 994 1

原创 看看你能答对吗?

这是C#题目,答案在最下方。 Code: //第一题    int i=10;       if(i=5){           Console.WriteLine("equals");       }else{            Console.WriteLine("not equals");      

2010-08-14 17:06:00 1523 7

原创 C#中的数据类型转换

1.隐式转换 小数据类型赋给大数据类型 double d=2; int-->double2.显示转换 大数据类型赋给小数据类型 int i=(int)2.5; double-->int(2)3.Parse/ToString用于字符串和值类型转换 int i=int.Parse("123"); string s=123.ToString();4.Convert用于

2010-08-14 17:06:00 1096 1

原创 C#中模式窗体和非模式窗体的区别

frm.ShowDialog();//打开一个模式窗体frm.Show();  //打开非模式窗体区别:1.返回值不同,DialogResult/void2.模式窗体会使程序中断,直到关闭模式窗口3.打开模式窗体后不能切换到应用程序的其他窗体4.子窗体和模式窗体互斥。

2010-08-14 17:06:00 6201 2

原创 Java中的switch于C#中的switch的区别

C#switch语句可以使用的表达式类型:兼容int和string,兼容int类型的有很多,比如:byte、char、short、uint等。C#的switch中,case、default中有语句一定要加break。Java可以使用的表达式类型:兼容int,字符串就不能判断。switch用于等值判断,区间判断应使用多重if语句。 

2010-08-14 16:42:00 3863

WPF MDI实现,并解决花屏问题

WPF MDI实现,采用了API方法,并解决了花屏问题

2011-05-25

WPF TreeView递归异步绑定

WPF的TreeView不像WinForms的TreeView那样,通过TreeNode实现树型节点。WPF的TreeView实现起来,我感觉有点像VM(View-Model)模式,就像WinForms中的DataGrid,控件负责显示,数据在DataTable中。那么我们在实现TreeView时,也需要用这样的思路,数据在Model中,控件是View负责显示。 我需要实现的最终目标是: 1.节点是异步加载的(解决效率问题) 2.节点是无限级别的(递归的,这样可复用与目录结构、组织架构等数据类型) 3.节点是可以多选的(用CheckBox选择) 4.XAML方式绑定(减少UI上Code量) 5.方便得获取选中项信息

2011-05-06

C# NetGoband

软件名称:C#网络五子棋游戏 软件描述:将TCP Sock通讯和五子棋游戏相结合,封装了服务器端通讯和客户端通讯,并结合继承、多态、委托、事件、多线程、网络编程、GDI+等知识点,以及软件设计,是一个综合性的项目。

2010-04-03

C#做的游戏-汉诺塔

C# 做的游戏 - 汉诺塔 C# 做的游戏 - 汉诺塔

2009-08-15

C#做的游戏 华容道

C#做的游戏-华容道 还能自编地图、自动解盘

2009-08-15

C#面向对象俄罗斯方块

C#做的俄罗斯方块。采用了面向对象的思想。

2009-08-15

在eclipse中生成doc文档视频

在eclipse中生成doc文档视频 -------------------

2009-04-15

在Eclipse中使用main参数视频

在Eclipse中使用main参数视频 -------------------

2009-04-15

在Eclipse中创建快捷命令

在Eclipse中创建快捷命令操作视频----

2009-04-15

在Eclipse中配置JRE视频

在Eclipse中配置JRE/JDK视频

2009-04-15

prototype中文手册及API

prototype中文手册及API<br>---------------------<br>prototype.js(1.5.1.1)<br>prototype中文手册<br>prototype.chm

2007-09-20

AjaxChart

ajax与xml结合显示chart的例子

2007-09-20

ajaxtags

java做的ajax例子,请用Eclipse打开。

2007-09-20

propedit_for_eclipse

可以编辑资源文件中的中文,不用再看一堆Unicode码了。<br>可用于eclipse 3.X<br>使用方法:<br>windows---->Preferences----> PropertiesEditor<br>在Encode at reading a file中选US--ASCII<br>这样在ApplicationResources.properties写中文,它会自动转换为ASCII;<br>例:在ApplicationResources.properties上点右键,open with选PropertiesEditor就可以在ApplicationResources.properties写中文了

2007-09-10

解决JBuilder2006中JSP不能使用泛型的问题

在JBuilder2006中默认JDK1.5+Tomcat5.5.9,但是在JSP页面中却不能使用泛型。应该说泛型是JDK1.5之后有的,但是在Servlet中却可以使用。why?<br>查了很多资料,都没有解决,有说在Tomcat/common/lib中加入ant.jar,删除原来jasper-compiler-jdt.jar,修改web.xml,我试了多次,在JBuilder2006里始终没有解决。<br><br>后来记得自己另外安装过一个Tomcat5.5.17版本,干脆把common/lib中的jar都复制到5.5.9里,居然JSP泛型运行正常。试了多次,牵涉到多个jar文件,所以干脆把几个jar都放在一起。<br><br>使用时只要覆盖原文件即可。

2007-09-04

Struts-Validate-Reset

在Struts验证框架中实现表单重置方法

2007-09-03

JSF-API(CHM)

虽然JSF用的不多,但是学习的时候还是要看API的。<br><br>网上只有JSF-html的文档,用起来不方便。于是我将其做成CHM文件,与各位分享。<br>

2007-08-28

struts自定义Validator示例

struts中自定义validator验证<br><br>很多时候需要验证“密码”与“重复密码”是否一致,如果放在服务器端验证就浪费资源了。<br>如何在客户端进行验证呢?JS可以实现,但是struts的validator框架是否能实现呢?-见示例

2007-08-24

PropertiesEditor for JBuilder

用以轻松编辑资源文件,不用再将中文转为Unicode码了。<br>将PropertiesEditor.jar复制到lib/ext目录下即可

2007-08-23

中文与Unicode码转换

一般用于java中资源的转换,使用方便。

2007-08-23

Excel制作的工作日日历

根据国定假日自动生成工作日历,可判断国定假日和换班日。

2022-10-09

2011-2020全国各省城镇基本医疗保险基金支出统计数据

从官方网站整理的2011-2020全国各省城镇基本医疗保险基金支出统计数据

2022-06-23

Excel级联菜单案例(线路与车站联动)

Excel里实现级联菜单 案例:轨道交通线路与车站,A单元格选择线路编号,B单元格只能选择该线路的车站名。

2022-06-20

10以内加减法自动出题器

10以内加减法自动出题器(EXCEL) 包含:10以内加法题、10以内减法、10以内加减法、10以内算术比较题,按F9可生成新题

2022-06-20

EasyUI 1.3.1动态表格列示例

EasyUI 1.3.1动态表格列示例 需修改EasyUI框架源码。

2012-12-13

WPF分页DataGrid(二)列右键菜单实现

在"WPF分页DataGrid"中介绍了如何实现分页功能,本文中介绍如果实现右键菜单。点击菜单项Age,将Age列隐藏,再点击则显示;并实现移动列后,同步显示。 详见:http://blog.csdn.net/qing2005/article/details/7683205

2012-06-21

WPF自定义正则验证控件

自定义文本框控件,能实现自定义的正则验证规则。

2012-06-01

WPF分页DataGrid

最近用到WPF的表格控件,需要使用分页功能,找了很多例子都不是很满意。有些是模仿SL做的DataPager导航条,使用的时候还要和DataGrid组合使用,不是很方便。最好还是继承DataGrid的分页表格控件。 于是自己动手封装了一个分页表格。

2012-05-29

WPF三级联动-源代码

WPF三级联动 http://blog.csdn.net/qing2005/article/details/6522246

2012-01-05

WPF使用装饰器实现SAP焦点样式(改进版)

思路: 1.定义一个自定义AdornerDecorator,用于为控件创建一个AdornerLayer; 2.在AdornerLayer上定义自定义的装饰器样式

2011-10-28

WPF使用装饰器实现SAP焦点样式

http://blog.csdn.net/qing2005/article/details/6830860 要实现这样的功能是有点难度的,幸好WPF提供了装饰器这个玩意,实现起来就容易了。 先说一下思路: 1.重写控件的装饰器; 2.指定窗体上的所有控件只有自定义的装饰器; 3.当控件获得焦点时显示装饰器。

2011-09-29

MVVM中轻松实现Command绑定(五)获取事件参数EventArgs(2)

在上一节中我介绍了“MVVM中轻松实现Command绑定(四)获取事件参数EventArgs”,通过Loaded事件传递控件对象,然后添加事件方法,这样做是可以的,但是不符合MVVM的思想,今日我介绍另一种方法,通过扩展interactivity的InvokeCommandAction来实现事件参数传递。 见:http://blog.csdn.net/qing2005/article/details/6680047

2011-08-11

利用prism实现ViewModel之间通讯的例子

WPF中时常会遇到ViewModel之间的通讯,ViewModel并不知道自己的View,但是一个View发生的更改需要通知另外一个View。 举一个例子,软件界面上有个人信息,打开一个界面更改用户的信息后,这时显示个人信息的地方理应发生变化。此场景下更改用户后应该通知另一个显示用户信息的区域去更新。一般在设计时,我们会设计成一个个的用户控件,用户控件的数据来源于ViewModel,所以此时需要ViewModel之间通讯。

2011-07-27

WPF数据国际化的实现

在WPF中界面国际化很容易实现,但是数据国际化确实是一个难题。为了解决项目中的需求,我设计了解决方案。 思路: 1.在数据库中,需要国际化的字段存放国际化key值; 2.在xaml中创建多套国际化,key为数据库中的值; 3.切换国际化时,加载不同的xaml; 4.通过key值获取对应的字符串。

2011-07-22

WPF MVVM命令绑定

场景,我需要处理Button的Click和MouseMove事件,但又避免用后置代码,尽量要在ViewModel中获取。单独一个Click可以通过Button的Command来完成,在前两篇文章中我已介绍过,现在就来处理MouseMove事件,这是需要一个System.Windows.Interactivity.dll,该dll是安装Blend后才有的,在C:\Program Files\Microsoft SDKs\Expression\Blend\.NETFramework\v4.0\Libraries目录中,然后我们仍需要Prism.dll。

2011-07-12

WPF验证之——必填验证 .

介绍见http://blog.csdn.net/qing2005/article/details/6584599

2011-07-04

WPF中全局开启或关闭动画效果

WPF中全局开启或关闭动画效果 公司开发的WPF项目中,要求有这样一个业务:用户可以开启或关闭动画效果。WPF的绚丽之处就是3D、动画、特效等等,给人非常炫的感觉,但是机器配置较差的用户可能需要关闭动画特效。 我甚至遇到一个3D特效在显卡不好机器上,导致应用程序崩溃的情况。可见WPF对机器的要求还是比较高的。如果才能做到呢?需要以下几步就能轻松完成。

2011-06-08

Actipro WPF Studio 破解版-part2

绝对可以破解使用的版本。 内含keygen和注册码。 keygen只能for Actipro WPF Studio-11.1.0540版本。 花了4个小时才找到的资源。

2011-05-26

Actipro WPF Studio 破解版-part1

绝对可以破解使用的版本。 内含keygen和注册码。 keygen只能for Actipro WPF Studio-11.1.0540版本。 花了4个小时才找到的资源。

2011-05-26

LinQ工具-LinQer

LinQ工具-LinQer 将SQL翻译成LINQ

2011-05-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除