C#数据结构与算法揭秘四
摘要:上节说过这节会讲双向链表,环形链表和应用举例,我们开始吧!!!!首先,明白什么是双向链表。所谓双向链表是如果希望找直接前驱结点和直接后继结点的时间复杂度都是 O(1),那么,需要在结点中设两个引用域,一个保存直接前驱结点的地址,叫 prev,一个直接后继结点的地址,叫 next,这样的链表就是双向链表(Doubly Linked List)。双向链表的结点结构示意图如图所示。双向链表结点的定义与单链表的结点的定义很相似, ,只是双向链表多了一个字段 prev。其实,双向链表更像是一根链条一样,你连我,我连你,不清楚,请看图。双向链表结点类的实现如下所示//一个链条的类public class
阅读全文
posted @
2012-10-31 12:56
laozhu1124
阅读(3143)
推荐(5) 编辑
C#数据结构与算法揭秘三
摘要:上文我们讨论了一种最简单的线性结构——顺序表,这节我们要讨论另一种线性结构——链表。什么是链表了,不要求逻辑上相邻的数据元素在物理存储位置上也相邻存储的线性结构称之为链表。举个现实中的例子吧,假如一个公司召开了视频会议的吧,能在北京总公司人看到上海分公司的人,他们就好比是逻辑上相邻的数据元素,而物理上不相连。这样就好比是个链表。链表分为①单链表,②单向循环链表,③双向链表,④双向循环链表。介绍各种各样链表之前,我们要明白这样一个概念。什么是结点。在存储数据元素时,除了存储数据元素本身的信息外,还要存储与它相邻的数据元素的存储地址信息。这两部分信息组成该数据元素的存储映像(Image),称为结点
阅读全文
posted @
2012-10-30 21:20
laozhu1124
阅读(3772)
推荐(3) 编辑
C#数据结构与算法揭秘二
摘要:上文对数据结构与算法,有了一个简单的概述与介绍,这篇文章,我们介绍一中典型数据结构——线性结构。什么是线性结构,线性结构是最简单、最基本、最常用的数据结构。线性表是线性结构的抽象(Abstract), 线性结构的特点是结构中的数据元素之间存在一对一的线性关系。 这种一对一的关系指的是数据元素之间的位置关系,即: (1)除第一个位置的数据元素外,其它数据元素位置的前面都只有一个数据元素; (2)除最后一个位置的数据元素外,其它数据元素位置的后面都只有一个元素。也就是说,数据元素是一个接一个的排列。因此,可以把线性结构想象为一种数据元素序列的数据结构。线性结构(List)是由 n(n≥0)个相同类
阅读全文
posted @
2012-10-29 21:26
laozhu1124
阅读(4780)
推荐(2) 编辑
C#数据结构与算法揭秘一
摘要:这里,我们 来说一说C#的数据结构了。①什么是数据结构。数据结构,字面意思就是研究数据的方法,就是研究数据如何在程序中组织的一种方法。数据结构就是相互之间存在一种或多种特定关系的数据元素的集合。 程序界有一点很经典的话,程序设计=数据结构+算法。用源代码来体现,数据结构,就是编程。他有哪些具体的关系了,(1) 集合(Set):如图 1.1(a)所示,该结构中的数据元素除了存在“同属于一个集合”的关系外,不存在任何其它关系。 集合与数学的集合类似,有无序性,唯一性,确定性。(2) 线性结构(Linear Structure):如图 1.1(b)所示,该结构中的数据元素存在着一对一的关系。我们.n
阅读全文
posted @
2012-10-29 16:30
laozhu1124
阅读(9488)
推荐(11) 编辑
win8 开发之旅(14) --飞机游戏制作揭秘
摘要:先看看这个游戏的类结构的介绍类结构公共类层:子弹帮助类、BulletHepler,公共帮助类、CommonHelper,图片帮助类、ImageHelper,精灵工厂类、SpriteFactory。游戏元素层:公有元素有精灵类、Sprite,精灵实体类、ModelSprite,英雄实体类、HeroSprite,游戏结束类、GameOver;旗下又包括了Bullet层,Daoju层,Effect层,Enemy层。Bullet层有一个基类BulletSprite,子弹精灵类。其他是具体的实现类EnemyBulletSprite、敌人子弹类,HeroCircleBulletSprite、英雄圆形子弹类
阅读全文
posted @
2012-10-28 18:26
laozhu1124
阅读(2359)
推荐(5) 编辑
C++ 学习之旅三——我和超级玛丽有个约会
摘要:学习了c++有一周有余了吧,感谢孙鑫老师的视频教程,让我 对C++有了基本的了解,并理解到C++与.net 的许许多多的区别,更要感谢网民为programaking的人,会为我提供了超级玛丽制作揭秘 这套宝贵的教程,让我 做做出了这个项目,对c++ 有了一个更深层次的认识。我就把我做超级玛丽这个游戏的心得,体会写成博客分享给大家把。首先,我说说对C++的最直观的感受吧!熟悉了.net 智能提示,开始一开始发现C++根本没有提示了。后来google了一下,下载了一个visual assist 这个插件,比vs自动提示强多了。 然后,就是习惯了在.net中,把所有的声明和方法实现写在同一文件中。.
阅读全文
posted @
2012-10-22 23:44
laozhu1124
阅读(1268)
推荐(0) 编辑
C++ 学习之旅二——说一说C++头文件
摘要:作为一个二手的.net程序员,你看到了C++头文件一定就犯迷糊了,这到底是个啥玩意。再我纠结了24个小时, google20次,度娘10下,看过10来骗文章以后,我可能稍微开窍了。我对C++头文件总结,与.net比较如下: 一、C++头文件究竟是什么,你怎么看?每个C++/C程序通常分为两个文件。一个文件用于保存程序的声明(declaration),称为头文件。另一个文件用于保存程序的实现(implementation),称为定义(definition)文件。C++/C程序的头文件以“.h”为后缀,C程序的定义文件以“.c”为后缀,C++程序的定义文件通常以“.cpp”为后缀(像linux..
阅读全文
posted @
2012-10-19 11:09
laozhu1124
阅读(817)
推荐(0) 编辑
win8 开发之旅(13) --webabcd大师,这事你怎么看? 向webabcd大师致敬。
摘要:首先,注明:以下的对话,纯属虚构。如有雷同,纯属巧合。人物介绍:Webabcd大师——江湖人称姓王名磊,微软的mvp(最有价值专家),。net界一等一的高手。小曾——silverlight小白。时间地点:2012年9月的一天,在一次北京举行的.net爱好者的聚会上。webabcd大师,做了一个关于的silverlight的演讲的以后,与会人员自由交流之时。首先,大师之所以是大师,不仅仅是因为是在技术水平的登峰造极。而且是因为其做人生修为上的高山仰止。所以,这位大师不知疲倦的解开了小曾这个silverlight小白关于一个win8上打地鼠这个小游戏的16个疑惑。小曾:⑴webabcd大师,我要做
阅读全文
posted @
2012-10-18 20:58
laozhu1124
阅读(1824)
推荐(1) 编辑
C++ 学习之旅一——Windows程序内部运行原理
摘要:学习C++与.net不同的是,一定要搞清楚Windows程序内部运行原理,因为他所涉及大多数是操作系统的调用,而.net毕竟是在.netFrameWork上唱戏。 那Windows应用程序,操作系统,计算机硬件之间的相互关系究竟什么了,下面的图就给予很好的解释。 向下箭头①是 应用程序运行判断处理的结果,输出到输出的设备。 向上箭头②是输入设备,输入到操作系统中。 向下箭头③代表API,我们要解释以下API是什么。API是应用程序接口,表示应用程序可以通知操作系统执行某个具体的动作,如操作系统能够控制声卡发出声音,但它并不知应该何时发出何种声音,需要应用程序告诉操作系统该...
阅读全文
posted @
2012-10-17 16:29
laozhu1124
阅读(1187)
推荐(0) 编辑
win8 开发之旅(12) -- 15个为什么搞掂win8 俄罗斯方块
摘要:人物介绍:老徐——wp7,win8 老鸟级开发者,开发marketplace上多款wp,win8应用。小曾——老徐的好朋友,有点.net 基础,学习silverlight半月有余,xaml的菜鸟。如是想写一个俄罗斯方块练练手,一是强化面向对象的基础,二是想练习xaml语言。但苦于没有思路,于是想向老徐请教。如是他们的对话开始了。。。。小曾: 老徐啊?我想写一个 俄罗斯方块,但是苦于没有思路,帮帮我把。 老徐:什么问题?小曾:①我苦于怎么面向对象分析?老徐:你从游戏的本身出发。俄罗斯方块,就有方块这个类。 方块有各种各样的形状的,如:T字形,I字形,N字形,O字形等等。 还有需要游戏逻辑的类,你
阅读全文
posted @
2012-10-16 20:01
laozhu1124
阅读(1929)
推荐(1) 编辑
Direct3D 开发之旅 3D 游戏基本概念的介绍2
摘要:文接上篇,上节说到了3D的重要的几何知识。 这节首先我们补充一些其他重要的3D的几何知识。 通过所有的变换,将顶点从物体局部坐标系变换到视口坐标系系统。变换方法以下几种 1. 平移,旋转和缩放等变换操作通常使用矩阵来执行 2. 在投影之后,每个顶点都在投影平面上有一个新的x和y值用于描述它的位置,同时还有一个述深度的z值。 3.在管线处理的最后阶段,将纹理填入到各个三角形或者表面当中.纹理就是游戏背景出现的一些头案。 在这,我们介绍一个主要空间系统,如图所示 我们再介绍一下物理坐标系统。 所谓的物理坐标系统, 是使用层次模型来表示由各个部分“装...
阅读全文
posted @
2012-10-14 21:53
laozhu1124
阅读(1014)
推荐(1) 编辑
Direct3D 开发之旅 3D 游戏基本概念的介绍1
摘要:3d游戏是相对于2d游戏而言,就是是游戏角色具有立体感。 3D游戏的官方解释为 3D游戏是使用空间立体计算技术实现操作的游戏。从编程实现角度来说游戏基础模型(游戏的人物,场景,基础地形)是使用三维立体模型实现的,游戏的人物角色控制是 使用空间立体编程算法实现的,那么就把这种游戏称作3D游戏。 要实现一个3D游戏并非什么易事。 首先,我们在这里要明确3d游戏的一些概念,3d游戏主要是由3D图像处理引擎完成3D图像处理过程 并呈现给玩家玩的过程 他包括 程序控制、几何变换、特效等等部分构成。其实3d游戏的过程本质就是一个...
阅读全文
posted @
2012-10-13 22:52
laozhu1124
阅读(2805)
推荐(0) 编辑
win8 开发之旅(11) --一封写给自己的信 由打苍蝇游戏写起
摘要:尊敬的laozhu11先生: 你好,今闻悉你,你用了半天的时间写了一个打苍蝇的小游戏。 美其名曰,是为即将到来win8开发浪潮打下夯实的基础;倒不如说为自己程序员生涯增加一个 重要的砝码,多一点吃饭的家伙。 但是,我通过这个简单的例子,看到你真的不行,离你心中的大拿差距的有十万八千里的. 首先,肯定你的两点。你这家伙写源代码确实很快了,3个小时,就写了2000行源代码,基本完成了项目的基本的工作。这是高手的行列。 再就是,你这个项目中的xaml语言的功底也深厚了一些。以前,xaml 语言的背景是用图片代替。其实,xaml 能写图片。你这个苍蝇的是用xaml写的,离xaml的...
阅读全文
posted @
2012-10-13 18:49
laozhu1124
阅读(955)
推荐(0) 编辑
Jquery 开发 案列 时间轴 --一封写给xxx工程师的信
摘要:xxx工程师: 你好!作为导师的我,我为能有你这个不错的朋友感到十分的高兴,因为毕竟你刚走出大学的校园, 更令人的遗憾的是,你大学荒废了四年了。 在我们共同学习的几个月中,我从你身上发现了确实有一个成为技术大拿的潜质——自学能力。果不其然,你这一个月已经成功 进入了.net工程师的角色,并且,得到老板的 赏识。但是,你说要我帮助搞定一个jquery的插件的问题时,我又十分的焦虑,焦虑不是你的技术,因为以你 的自学能力,任何技术能力都能够搞定。但是,你应该有一个更 重要的能力--勤奋刻苦的能力,这是任何成功者必备的最重要的素质。 我这里写了这个时间轴的控件思路,告诉你授之...
阅读全文
posted @
2012-10-13 14:06
laozhu1124
阅读(2723)
推荐(3) 编辑
win8 开发之旅(10) --五子棋游戏开发 错误提醒和纠错
摘要:经过一系列的铺垫和折腾,我的五子棋的开发也该走到了尽头。在这开发的几天中,我有一些错误,也有一些感悟,因此需在这里做一个总结。 这个项目中,遇到了一个错误,相信也是大家也会碰到的。我想用RadialGradientBrush(渐变笔刷)使黑白棋子做的更有质地,可惜没有这个类。 微软貌似是为了提高显卡性能,把这个类干掉了。而且Metro界面程序好多笔刷都不支持。我思考了再三,没辙。换一下其它解决方案吧。例如: 1.在photoshop中渲染好图片,用静态图片替代。 2.渲染效数到远程服务器,远程服务器返回渲染后的图片地址,类似GoogleChart那样。 ...
阅读全文
posted @
2012-10-12 09:45
laozhu1124
阅读(1692)
推荐(2) 编辑
win8 开发之旅(9) --五子棋游戏开发 一个屌丝程序员谈ai
摘要:一直相信IT世界的最有魅力的,便是能够实现人机对战 人工智能,他的魅力犹如一座美丽的天空之城,那里能够充满你与机器奋斗的火药气味,这是一个没有硝烟战斗,犹如纯爷们之间的战斗——浅月若寒 朋友你会对我的ai千呼万唤始出来,亲爱的ai姑娘,请你掀起你的盖头来! 好!我来了。读者哥哥,请听小妹妹我说:" 五子棋,怎么进行 判断这个位置是否为空啊 哥哥曰:"我想 这里用-1代表无棋子,1代f表的黑棋,2代表的白棋。" 小妹妹又吆喝:"哥哥呀!你真不错,妹妹有点钦佩你了,我再问你了,怎么判断五颗棋子是否相连了。" 哥哥思考了一会儿,便答曰:“...
阅读全文
posted @
2012-10-10 21:40
laozhu1124
阅读(565)
推荐(0) 编辑
win8 开发之旅(8) --五子棋游戏开发 诠释View层
摘要:View层,虽是短短的几个字,却有着丰富的内涵。如若做不好的话,却可能整个项目的最大败笔。 那view究竟是个啥玩意。 百度百科上说View是视图是用户看到并与之交互的界面。 就好像生活人的一张脸,长得好的人,给人的第一印象自然不错吧!人毕竟是视觉动物。生活中,喜爱美女、帅哥也是这个道理吧!以此类推,在it界大兴UI(用户体验)的时代,一个好的用户体验的自然会为你博得网民的眼球,好的用户体验自然为会为你带来巨大的客户。 当然UI,不简单是界面漂不漂亮,而更重要是功能强不强大,用户操作是不是方便。说了这么多废话,你的UI又为之奈何乎? 前面无论说Model层也好,还是Control层也罢!都..
阅读全文
posted @
2012-10-10 09:40
laozhu1124
阅读(1282)
推荐(0) 编辑
win8 开发之旅(7) --五子棋游戏开发
摘要:写博客有段时间,发现自己博客虽然有点击率,但是不怎么给力,更主要的是读者没有学到什么知识。 我思考了许久,就是这么样的,一个我写的文章可能专业术语用的太多了,太深硬了。二个尽是写点书面语言 不够生动。因此我痛定思痛了,一定要与读者亲切点,多主点生活中的例子,让读者好理解吗?? 这又是一个新的征程。 亲,我们讨论mvc中这个C,Controller中的知识。 Controller,顾名思义,控制器,起了一个桥梁的作用。控制器接受用户的输入并调用模型和视图去完成用户的需求。 体现在这个五子棋项目中就是通过这些类来体现的。 ComputerCommand类,G...
阅读全文
posted @
2012-10-09 21:40
laozhu1124
阅读(1344)
推荐(1) 编辑
win8 开发之旅(6) --五子棋游戏开发
摘要:上节,对实体类进行了较多篇幅的分析,这节我们来阐述两个代理类applicationProxy 类与PieceboardProxy类的内部或者外部的知识。 首先要搞清楚这个问题吧!!!!!!!!为什么需要代理类型。 这是为了更好的使用代理模式。代理模式是什么东东?他有什么作用。 百度百科上对代理模式解释这么样的。代理模式:为其他对象提供一个代理以控制对这个对象的访问。 就是在内存中创建了一个代理对象,来控制其他的类对相应这个对象的访问。我们这里举个例子吧!最明显的体现就是webservice技术 。当程序员访问网络上一台计算机的资源时,我们正在跨越网络障碍,跨越网络障碍有时候是非常复杂,因为..
阅读全文
posted @
2012-10-09 09:48
laozhu1124
阅读(1866)
推荐(1) 编辑
win8 开发之旅(5) --五子棋游戏开发
摘要:上节说道了对这个游戏 面向对象的分析,各位读者 ,有什么不懂,尽情给我留言把!!!!!!闲话少说,这节我们对 游戏的实体类,先进行伪代码分析,然后进行源代码的分析。 我们先看这些类的整体的架构如下图所示: Piece类 代表相应的棋子的类, 他应该有 位置这个属性,而位置的最好的体现是通过纵坐标横坐标来体现;相应形状这个属性代表是黑色用户控件还是白棋的用户控件。 类型属性代表代表这是黑棋, 还是白棋; 索引属性 插入相应的索引的位置。 相应源代码如下: private UserControl _shape; private Position...
阅读全文
posted @
2012-10-08 19:03
laozhu1124
阅读(1138)
推荐(0) 编辑
win8 开发之旅(4) --五子棋游戏开发 面向对象的分析
摘要:上节说到剖析五子棋的任务从这节开始,那确实。 其实,这节的任务很简单,就是 以完全面向对象的思想来分析这个小游戏。 对于面向对象,对于开发人员,一定不再陌生,这里就不再赘述。 那他需要哪些类了。 一个黑棋子,一个白棋子,他是不是有许多的属性 是一样的,因此我们这里抽象出一个piece 包含位置,类型等等属性 这些棋子在哪玩,是不是棋盘上。因此,我们需要棋盘类(pieceboard)类来体现所谓的棋盘。 怎么来存储相应五子棋的结果了,因此我们需要winningResult类存储相应结果。 你会问我怎么来控制游戏开展的,我这里是基于mvc的思想 ...
阅读全文
posted @
2012-10-08 13:09
laozhu1124
阅读(1724)
推荐(1) 编辑
win8 开发之旅(3) --五子棋游戏开发 前奏
摘要:真的是好久、好久没有写博客了,手都生了。我有在国庆这七天的时间更进一步的学习了xaml语言,熟悉了win8的开发的过程。 因此我会把我这些天开发的一些心得陆陆续续的分享给大家。 经过前几次我写相应的开发的历程,我就发现写自己开发的历程,要么直说自己的想法,要么只贴源代码,使读者摸不着头脑。在这里,我争取综合两者长处,深入浅出的剖析开发历程,争取使大家有所获益。 在这节中,我们要主要搞清楚以下几个问题。 什么是五子棋 编程实现五子棋有哪些难点 五子棋,相信大多数人都玩过。因此对他都有所了解。那五子棋的定义究竟是什么了? 百度百科上说: 传统五子棋的棋具与围棋大致相...
阅读全文
posted @
2012-10-08 10:02
laozhu1124
阅读(2445)
推荐(0) 编辑
如果你是来12306系架,你如何实现? ——关于构建安全、稳定、高吞吐量的火车票网络售票系统几个方面(2)结束及总结
摘要:上节,对12306。cn有了一个很好的铺垫,这节我们来讨论,架构的具体问题署接上文于是,在网上纷纷对本系统产生了各种各样的讨论,有的说是系统设计问题、有的说是系统带宽不足、有的说明系统设计时有失公平(竞标)、有的说付了款却没了票、有的说是需要用“云计算{技术}”才能解决等等。不管怎么样,重新架构或进行重大调整是必然的。个人觉得云计算只不过是一种资源或信息服务方式,它也需要更好的系统的架构和稳健的系统才能提供这种服务方式,所以通过“云计算”并不能解决本系统的超大规模的访问的承载,相反更应该从系统架构方面来重拾系统的稳健和可扩展性。目前12306.cn最高日访问量达14.09亿次,最高日订票量为1
阅读全文
posted @
2012-10-01 22:05
laozhu1124
阅读(3214)
推荐(1) 编辑
如果你是来12306系架,你如何实现? ——关于构建安全、稳定、高吞吐量的火车票网络售票系统几个方面(1)前引
摘要:一个网络售票系统 简单的系统架构应该如图所示 火车出行是人们最常用、便捷的一种出行方式,基于中国的人口多的情况,中国的火车出行人数非常庞大。中国铁道部为了解决火车票订票难、抵制“黄牛”、提高火车出行的安全性、提高订票公平性等火车出行问题,先后推出了火车票实名制、网络售票等业务,以方便旅客更便捷地,公平地使用火车作为交通工具出行。但目前所推出的网络客票系统存在经常性崩溃、无法正常提供服务的情况,究其根源,主要是因为使用本系统的人过多,超过系统的承载力所至,为了改善这些问题,从系统架构方面着手是解决本系统的关键,构建安全、稳定、高吞吐量的火车票订购系统也是迫在眉睫的事情。 客票系统基本架构看...
阅读全文
posted @
2012-10-01 16:00
laozhu1124
阅读(2366)
推荐(0) 编辑
iYou外网优化总结教训经验:
摘要:ou外网优化总结教训经验:经过前期iYou服务外网平台搭建和优化,我做了一些思考和总结,并学习了很多其他公司或者平台搭建的一些思想,现总结如下,希望能在后面的iYou、IWe或者其他项目开发时,有所借鉴。1、SOA服务的粒度的把控:由于之前iYou开发都是由开发人员直接设计Edmx模型,然后设计服务,这种是自下而上的方式,后面开发了很多的服务,粒度的把控也不是很好,最终导致很多重复性开发以及不适于前端的调用,而导致了大量工作的返工。建议:服务在设计时应该是自上而下或者在服务开发之前做相应的调整。尽量的保证服务粗粒度化,这样就能减少前端的调用次数,当然这跟减少页面的Http请求的效果是一致的。另
阅读全文
posted @
2012-10-01 12:54
laozhu1124
阅读(1074)
推荐(0) 编辑