手把手玩转win8开发系列课程(6)
摘要:这节,揭秘工程继续。揭秘StandardStyles.xaml文件。common文件下所包括项目中要所使用各种各样的模板文件。如图所示:别看这么多文件了,我这里关心StandardStyles.xaml文件,他有什么作用了,最明显的作用是这个文件包含了app.xaml中所引用的一些资源字典的数据。这些数据有究竟是什么了,我问你你看到的metro风格的窗体是哪儿规定,就是来自StandardStyles.xaml文件定义的各种各样的样式。你如果对xaml有所了解的话,一定对xaml中样式不再陌生,这种样式的定义域html中css的效果有异曲同工之妙的效果。首先,因为这里的源代码太多,这里你看到的
阅读全文
posted @
2012-11-30 18:56
laozhu1124
阅读(2786)
推荐(1) 编辑
手把手玩转win8开发系列课程(5)
摘要:前面第三节,我们对ui层大一统的技术——xaml技术有了一个概览。 这节中的我们正式以一个项目——食品管理程序从头到尾的开发的过程,来真真正正手把手进行win8开发。别看这是简简单单的项目,麻雀虽小,能够学win8的开发的方方面面——数据的绑定,各种各样的控件和xaml样式的引用等等。 在下图1,你会看到这个项目最终运行的效果(在模拟器中运行的)。项目的开篇介绍。针对项目,首先,可以肯定告诉大家我写的这个项目的内容是针对程序猿们而不是对于这些设计妹妹,而且这个食品管理器不是一个完整的程序,非常抱歉,我甚至没有把所有的功能实现。只是通过这个程序展示了背后源代码实现。如果你是一名的设计人员,我这.
阅读全文
posted @
2012-11-29 23:16
laozhu1124
阅读(3258)
推荐(3) 编辑
手把手玩转win8开发系列课程(4)
摘要:上节我们说的windows8开发主要是研究开发windowsstore程序,那么我们这节重点讨论了windows store 究竟是何物?为什么平板电脑都有什么store?并且对这几个成熟的windows store程序进行简单的演示,从而比较win8平板电脑与其他的平板电脑有什么独特的地方。windows store 程序就是软件的开发者开发好了一个程序以后,只有且必须把相应的程序上传到微软的官方市场上,才能够让大庭广众使用。为什么会推出了这种机制了。这就有必要与现在的pc的程序安装来比较。不知道,大家安装pc程序是否遇到过这样的问题。①如在安装wps时候, 总是询问你是否安装金山毒霸,金山
阅读全文
posted @
2012-11-29 13:08
laozhu1124
阅读(2604)
推荐(1) 编辑
手把手玩转win8开发系列课程(3)
摘要:上节,我们已经搭建了他的开发环境,这节,我们对UI层大一统的技术——XAML技术进行一个概览。先来搞清楚什么是XAML?所谓XAML是eXtensible Application Markup Language的英文缩写,相应的中文名称为可扩展应用程序标记语言,它是微软公司为构建应用程序用户界面而创建的一种新的描述性语言. 特别提醒,xaml中含有ML两个字,因此可以看出来他属于ML(mark Language)家族,这里有必要揭秘一下他的前世今生。 在xaml出现之前,微软技术的使用者曾经遇到过以下几个难题。①在开发一个应用程序时,开发工作开发人员和设计人员两个团体同时进行时候,负责后台程.
阅读全文
posted @
2012-11-28 15:09
laozhu1124
阅读(3899)
推荐(3) 编辑
手把手玩转win8开发系列课程(2)
摘要:对win8开发,上一节我们对win8进行了简单的介绍,这一节我们来瞧一瞧他的开发环境搭建。 前奏。这里所讲的win8开发,主要是指Windows8 app store 上开发,及metro ui或叫morden ui 程序的开发。传统桌面应用程序,网站应用程序的win8开发和在win7,xp下一模一样,这里就不多做过多的赘述。这里的开发运行环境必须是Windows8,开发工具可以用vs2012 express 版本,注意这里只能开发Windows8 app store的应用程序,下载地址为http://download.microsoft.com/download/B/0/F/B0F589ED
阅读全文
posted @
2012-11-27 17:10
laozhu1124
阅读(4187)
推荐(3) 编辑
手把手玩转win8开发系列课程(1)
摘要:win8操作系统推出一个多月了,我做win8开发也有2个多月了,也写了不少wi8开发的游戏开发的博文(这一系列我会继续的更新),在这里我准备重新推出一套win8的手把手的教程,来帮助更多人,走入win8开发的阵营。这里我们做好一些win8前期的工作,安装win8及其对win8进行一些介绍。 Win8是由微软公司开发的,具有革命性变化的操作系统。该系统旨在让人们的日常电脑操作更加简单和快捷,主要是针对平板电脑等新一代的移动互联网操作系统,是为人们提供高效易行的工作环境Win8支持来自Intel、AMD和ARM的芯片架构。win8开发的硬件要求: 最低配置 CPU:1 GHz; 内存:1 GB R
阅读全文
posted @
2012-11-27 12:22
laozhu1124
阅读(7440)
推荐(4) 编辑
win8 游戏纵横谈
摘要:wiN8 已经写了7-8个不入流的小游戏, 这些都是一些简单的2d游戏,无论曾经风靡的游戏,例如俄罗斯方块,连连看,宝石迷阵的游戏,还是打地鼠,足球这些小儿科的游戏。通过这些一个个鲜活游戏小例子,我总结出了开发游戏的几大要素。①坐标系的应用,坐标应用应该是可想而知的,因为要判断游戏的中主人公角色的位置。对于屏幕坐标系大家要注意以下几点:(1)在游戏绝对坐标系, 他的x轴的 与普通坐标系一样,但y轴与普通坐标系是恰恰是相反的。而且x,y值只有正值。他的坐标系如图所示:(2)这里还有一个相对坐标系,相对坐标是相对于绝对坐标系而言,这个在相对坐标系就会出现了正负值。这样 坐标系,就如图所示:这样 .
阅读全文
posted @
2012-11-26 20:21
laozhu1124
阅读(1979)
推荐(2) 编辑
win8 开发之旅(19) --足球游戏揭秘6
摘要:我们这里揭秘什么了,来揭秘一下.MoveResult,GoalPost,Shot这几个类。首先,这几个类都属于Moel层,这几个类都是主要用于存储相应的实体类的信息,具体为什么请听我一一娓娓道来。 ①MoveResult——记录移动信息的类,就是记录运动员的移动的信息。他继承与Discoid这个类,物体的实体类。而实现的伪代码如下:相应的源代码如下:View Code /// <summary> /// 移动的结果 /// </summary> public class MoveResult { /// <summary> /// ...
阅读全文
posted @
2012-11-24 10:57
laozhu1124
阅读(926)
推荐(1) 编辑
浅议约瑟夫问题
摘要:什么是约瑟夫问题,约瑟夫问题是据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个人排成一个圆圈,由第1个人开始报数,每报数到第3人该人就必须自杀,然后再由下一个重新报数,直到留下一个人都自杀身亡为止。解决这个问题,有多少种方法。①最常用的方法是使用循环链表的解决。首先, 将这39 个犹太人构成一个循环链表,每个犹太人等同与一个结点,这个结点有后继结点相连,最后的结点与第一个结点相连。我实现的思路如下所示:结点翻译成源代码如下:View Cod
阅读全文
posted @
2012-11-23 11:49
laozhu1124
阅读(2035)
推荐(2) 编辑
win8 开发之旅(19) --足球游戏揭秘5
摘要:今天,我们揭秘一下Group,GameConfig,PlayersConfig这几个类。 这几个虽然是添头类,但缺少了他,游戏,嗨,真的运行不了。那,请掀起盖头来吧!①Group——有足球知识的基础的人,都明白这是干嘛的,这是一个分组情况的类。这是中国球迷最避讳一个词,每次大赛小赛一出来,总是看到国足被分入了死亡之组,哎怎么总被分入死亡之组了,这个类在游戏中的作用如图所示:相应源代码如下所示:View Code /// <summary> /// 当前的组别 A组 B组 C组 /// </summary> public class Group { ...
阅读全文
posted @
2012-11-21 16:31
laozhu1124
阅读(1232)
推荐(3) 编辑
win8 开发之旅(18) --足球游戏揭秘4
摘要:这节,我们介绍一下DiscoidPosition,TableBorder,Vector2D 这三个类吧.你别开只有这三个类,对这个项目有着至关重要的作用。①DiscoidPosition——物体的位置的坐标,标记物体的x,y坐标的位置。源代码如下所示: 1 ///<summary> 2 /// 物体的位置 3 /// </summary> 4 public class DiscoidPosition 5 { 6 /// <summary> 7 /// x坐标 8 /// </summary> 9 ...
阅读全文
posted @
2012-11-19 10:41
laozhu1124
阅读(1249)
推荐(2) 编辑
win8 开发之旅(17) --足球游戏揭秘3
摘要:我们继续我们的足球的揭秘之旅了,在解密的过程中,我牢牢遵守了由易到难的原则,今天是解密FoulTypes,GameState,PlayerState这三个枚举类型。FoulType——犯规的枚举类型,相应的源代码如下所示: 1 /// <summary> 2 /// 犯规的类型的枚举类型 3 /// </summary> 4 public enum FoulTypes 5 { 6 /// <summary> 7 /// 直接任意球 8 /// </summary> 9 DirectFreeKic...
阅读全文
posted @
2012-11-17 23:18
laozhu1124
阅读(1149)
推荐(2) 编辑
win8 开发之旅(16)---------足球游戏揭秘(2)
摘要:游戏的原貌到底是怎么样的了,这节我们给你来揭秘吧。我们这里遵从先外向里的原则,先局部后整体的原则吧。首先看看他的整体的结构吧!如图所示:这里没有用分层的概念,而是一个文件夹代表了一个层。层确实蛮多的,但是与这个有关的核心的文件夹只有这几个Images文件夹,Sound文件夹,Controls文件夹,Common文件夹,View文件夹。Images文件夹包含了这个游戏中所有的资源的图片。Sounds文件夹包含了这个游戏中所有的声音文件。而Controls包含了其中控制器,控制相应页面上控件的业务逻辑。如下图所示:BallFace——控制有关球运动的相应的逻辑。GameHelper——游戏中相应的
阅读全文
posted @
2012-11-17 10:08
laozhu1124
阅读(1167)
推荐(3) 编辑
win8 开发之旅(15) --足球游戏揭秘(1)
摘要:足球游戏是一种喜闻乐见的游戏,当然了足球游戏,可以有难有易。难得可以做成像实况足球,fifa那样大型的3d游戏,简单的也只能模拟踢球的画面,球员用 圆圈,图形代表了。那我的足球游戏,也是这样的。具体情况,如图所示:这是一个进行选择球队的界面,我的队伍是依据fifa2010世界杯分组的情况,也是一个splashgren window,缓冲界面,当你选择了那支球队以后,就跳到他与另外本组的另外的球队的比赛的情况去了,这也是严格按照世界杯的赛程走的。譬如,我选择的是巴西队,他的第一场是对北朝鲜。 用圆圈是代表相应的球员,这一个个圆圈上面有各队的队徽,画面上上面还有比分牌和计时器,并且模拟了基...
阅读全文
posted @
2012-11-16 09:59
laozhu1124
阅读(1999)
推荐(7) 编辑
C#数据结构与算法揭秘19
摘要:这节,我们介绍基数排序和归并排序。一、基数排序基数排序(Radix Sort)的设计思想与前面介绍的各种排序方法完全不同。前面介绍的排序方法主要是通过关键码的比较和记录的移动这两种操作来实现排序的,而基数排序不需要进行关键码的比较和记录的移动。基数排序是一种借助于多关键码排序的思想,是将单关键码按基数分成多关键码进行排序的方法,是一种分配排序。下面用一个具体的例子来说明多关键码排序的思想。 一副扑克牌有 52 张牌,可按花色和面值进行分类,其大小关系如下: 花色:梅花<方块<红心<黑心 面值:2<3<4<5<6<7<8<9<10
阅读全文
posted @
2012-11-15 18:47
laozhu1124
阅读(1718)
推荐(1) 编辑
C#数据结构与算法揭秘18
摘要:这节我们介绍堆排序。、堆排序在直接选择排序中,顺序表是一个线性结构,要从有n个记录的顺序表中选择出一个最小的记录需要比较n-1 次。如能把待排序的n个记录构成一个完全二叉树结构,则每次选择出一个最大(或最小)的记录比较的次数就是完全二叉树的高度, 即log2n次, 则排序算法的时间复杂度就是O (nlog2n) 。 这就是堆排序(Heap Sort)的基本思想。 堆分为最大堆和最小堆两种。最大堆的定义如下: 设顺序表sqList中存放了n个记录, 对于任意的i(0≤i≤n-1), 如果2i+1<n时有 sqList[i]的关键码不小于 sqList[2i+1]的关键码;如果 2i+2&l
阅读全文
posted @
2012-11-15 15:41
laozhu1124
阅读(1366)
推荐(1) 编辑
C#数据结构与算法揭秘17
摘要:这节我们介绍直接插入排序和希尔排序算法,一、直接插入排序直接插入排序(direct Insert Sort)的基本思想是:顺序地将待排序的记录按其关键码的大小插入到已排序的记录子序列的适当位置。 子序列的记录个数从1开始逐渐增大,当子序列的记录个数与顺序表中的记录个数相同时排序完毕。设待排序的顺序表 sqList 中有 n 个记录,初始时子序列中只有一个记录sqList[0]。第一次排序时,准备把记录 sqList[1]插入到已排好序的子序列中,这时只需要比较 sqList[0]和 sqList[1]的大小,若 sqList[0]≤sqList[1],说明序列已有序,否则将 sqList[1]
阅读全文
posted @
2012-11-14 19:56
laozhu1124
阅读(1530)
推荐(2) 编辑
C#数据结构与算法揭秘16
摘要:这节我们就用的最多的算法——排序发起重点的讨论。 常见的排序分为冒泡排序,快速排序,直接插入排序 ,希尔排序,基数排序 ,简单选择排序 ,堆排序 等等。一、冒泡排序冒泡排序(Bubble Sort)的基本思想是:将相邻的记录的关键码进行比较,若前面记录的关键码大于后面记录的关键码,则将它们交换,否则不交换。设待排序的顺序表 sqList 中有 n 个记录,冒泡排序要进行 n-1 趟,每趟循环均是从最后两个记录开始。 第 1 趟循环到第 2 个记录的关键码与第 1 个记录的关键码比较后终止, 第 2 趟循环到第 3 个记录的关键码与第 2 个记录的关键码比较结束后终止。一般地,第 i 趟循环到第
阅读全文
posted @
2012-11-14 12:46
laozhu1124
阅读(1822)
推荐(4) 编辑
C#数据结构与算法揭秘15
摘要:这节,我们主要讨论,一下克鲁斯卡尔算法实现 最小生成树。克鲁斯卡尔算法的基本思想是:对一个有 n个顶点的无向连通网,将图中的边按权值大小依次选取,若选取的边使生成树不形成回路,则把它加入到树中;若形成回路,则将它舍 弃。如此进行下去,直到树中包含有 n-1条边为止。以下图 (a)为例说明用克鲁斯卡尔算法求无向连通网最小生成树的过程。 第一步:首先比较网中所有边的权值,找到最小的权值的边(D,E),加入到生成树的边集 TE 中,TE={(D,E)}。 第二步:再比较图中除边(D,E)的边的权值,又找到最小权值的边(A,D)并且不会形成回路,加入到生成树的边集 TE 中,TE={(A,D),(..
阅读全文
posted @
2012-11-13 20:43
laozhu1124
阅读(2578)
推荐(4) 编辑
C#数据结构与算法揭秘14
摘要:好久, 没写blog了,今天,多写点。 上节说到那里了,是不是说图的遍历,这节,我们来通过图的具体的应用了。 首先,看看最小生成树的应用了。 什么是最小生成树了? 由生成树的定义可知,无向连通图的生成树不是唯一的,对连通图的不同遍历就得到不同的生成树。图 b 所示是图 (a)所示的无向连通图的部分生成树。 所谓最小生成树是如果是一个无向连通网, 那么它的所有生成树中必有一棵边的权值总和最小的生成树,我们称这棵生成树为最小代价生成树(Minimum Cost Spanning Tree).许多应用问题都是一个求无向连通网的最小生成树问题。例如,要在 n个城市之间铺设光缆, 铺设光缆的费用...
阅读全文
posted @
2012-11-13 16:31
laozhu1124
阅读(3072)
推荐(3) 编辑
C#数据结构与算法揭秘13
摘要:这节,我们来看看一下什么了,来看看图的遍历吧!首先,搞清楚,图的遍历的基本的含义了。图的遍历是指从图中的某个顶点出发,按照某种顺序访问图中的每个顶点,使每个顶点被访问一次且仅一次。图的遍历与树的遍历操作功能相似。图的遍历是图的一种基本操作,并且图的许多其他操作都是建立在遍历操作的基础之上的。遍历示意图,如图所示:然而,图的遍历要比树的遍历复杂得多。这是因为图中的顶点之间是多对多的关系,图中的任何一个顶点都可能和其它的顶点相邻接。所以,在访问了某个顶点之后, 从该顶点出发, 可能沿着某条路径遍历之后, 又回到该顶点上。 例如,在下图中,由于图中存在回路,因此在访问了 A、B、C、D、E之后,沿着
阅读全文
posted @
2012-11-09 12:54
laozhu1124
阅读(2108)
推荐(2) 编辑
C#数据结构与算法揭秘12
摘要:这节,我们来重点讨论一下 这个树形结构的相应的源代码的实现了。真的我们首先介绍一下无向图邻接表类的实现来说明图的邻接表类的实现。无向图邻接表的邻接表结点类 adjListNode<T>有两个成员字段,一个是1adjvex,存储邻接顶点的信息,类型是整型;一个是 next,存储下一个邻接表结点的地址,类型是 adjListNode<T>。adjListNode<T>的实现如下所示。public class adjListNode<T> { private int adjvex; //邻接顶点,连接定点 private adjListNode<
阅读全文
posted @
2012-11-08 18:04
laozhu1124
阅读(1931)
推荐(3) 编辑
C#数据结构与算法揭秘11
摘要:这节,我们说一说,图的基本源代码的源代码实现。具体情况,请听我一一给大家娓娓道来。图的基本操作用一个接口来表示,为表示图的基本操作,同时给出了顶点类的实现。由于顶点只保存自身信息,所以顶点类 Node<T>很简单,里面只有一个字段 data。顶点的类 Node<T>的实现如下所示。 public Class Node<T> { private T data; //数据域 //构造器 public Node(T v) { data = v; } //数据域属性 public ...
阅读全文
posted @
2012-11-07 11:28
laozhu1124
阅读(3035)
推荐(3) 编辑
C#数据结构与算法揭秘十
摘要:这篇文章,我们来讨论图的相关知识。一、究竟什么图装结构了,所谓的图是图状结构简称图,是另一种非线性结构,它比树形结构更复杂。树形结构中的结点是一对多的关系,结点间具有明显的层次和分支关系。每一层的结点可以和下一层的多个结点相关,但只能和上一层的一个结点相关。而图中的顶点(把图中的数据元素称为顶点)是多对多的关系,即顶点间的关系是任意的,图中任意两个顶点之间都可能相关。也就是说,图的顶点之间无明显的层次关系,这种关系在现实世界中大量存在。因此,图的应用相当广泛,在自然科学、社会科学和人文科学等许多领域都有着非常广泛的应用。例如搜索引擎,地图等等。如图所示:图(Graph)是由非空的顶点(Vert
阅读全文
posted @
2012-11-06 14:45
laozhu1124
阅读(2292)
推荐(3) 编辑
C#数据结构与算法揭秘九
摘要:这节,我们说一说二叉树常见的应用的场景。呵呵。。。。。。。。。。。。。。定义一个哈夫曼树,首先,要高清楚什么是哈夫曼树。所谓哈夫曼树是又叫最优二叉树,指的是对于一组具有确定权值的叶子结点的具有最小带权路径长度的二叉树。介绍哈夫曼树的一些基本概念。(1)路径(Path):从树中的一个结点到另一个结点之间的分支构成这两个结点间的路径。 (2)路径长度(Path Length):路径上的分支数。 (3)树的路径长度(Path Length of Tree):从树的根结点到每个结点的路径长度之和。在结点数目相同的二叉树中,完全二叉树的路径长度最短。 (4)结点的权(Weight of Node):在一
阅读全文
posted @
2012-11-05 11:32
laozhu1124
阅读(3600)
推荐(4) 编辑
C#数据结构与算法揭秘八
摘要:这节重点讨论 树的结构的源代码实现。先做一铺垫,讨论一下二叉树的存储结构。二叉树的存储结构分为线性存储和链式存储等等。1、二叉树的顺序存储结构 对于一棵完全二叉树,由性质 5可计算得到任意结点 i 的双亲结点序号、左孩子结点序号和右孩子结点序号。所以,完全二叉树的结点可按从上到下和从左到右的顺序存储在一维数组中,其结点间的关系可由性质 5计算得到,这就是二叉树的顺序存储结构。下图所示的二叉树的顺序存储结构为:但是,对于一棵非完全二叉树,不能简单地按照从上到下和从左到右的顺序存放在一维数组中, 因为数组下标之间的关系不能反映二叉树中结点之间的逻辑关系。 所以, 应该对一棵非完全二叉树进行改造,
阅读全文
posted @
2012-11-04 12:11
laozhu1124
阅读(3161)
推荐(5) 编辑
C#数据结构与算法揭秘七
摘要:前面介绍了线性结构,线性结构中的数据元素是一对一的关系。本章和下一章介绍两种非常重要的非线性结构:树形结构和图状结构。树形结构是一对多的非线性结构,非常类似于自然界中的树,数据元素之间既有分支关系,又有层次关系。树形结构在现实世界中广泛存在,如家族的家谱(图一)、一个单位的行政机构组织(图二)等都可以用树形结构来形象地表示。树形结构在计算机领域中也有着非常广泛的应用,如 Windows 操作系统中对磁盘文件的管理、编译程序中对源程序的语法结构的表示等都采用树形结构。在数据库系统中,树形结构也是数据的重要组织形式之一。树形结构多叉树和二叉树两种,多叉树的操作实现比较复杂,但多叉树可以转换为二叉树
阅读全文
posted @
2012-11-03 11:39
laozhu1124
阅读(6209)
推荐(3) 编辑
C#数据结构与算法揭秘六
摘要:这节我们讨论两种用的蛮多的数据结构——串和数组首先,老样子,什么是串,这里串不是吃的牛肉串,羊肉串,而是字符串。在应用程序中使用最频繁的类型是字符串。字符串简称串,是一种特殊的线性表,其特殊性在于串中的数据元素是一个个的字符。字符串在计算机的许多方面应用很广。如在汇编和高级语言的编译程序中,源程序和目标程序都是字符串数据。在事务处理程序中,顾客的信息如姓名、地址等及货物的名称、产地和规格等,都被作为字符串来处理。另外,字符串还具有自身的一些特性。因此,把字符串作为一种数据结构来研究。具体情况,如图所示,顾客信息处理的字符串。串有哪些基本的概念了,串(String)由 n(n≥0)字符组成的有限
阅读全文
posted @
2012-11-02 19:49
laozhu1124
阅读(2892)
推荐(2) 编辑
C#数据结构与算法揭秘五
摘要:这节我们讨论了两种好玩的数据结构,栈和队列。老样子,什么是栈, 所谓的栈是栈(Stack)是操作限定在表的尾端进行的线性表。表尾由于要进行插入、删除等操作,所以,它具有特殊的含义,把表尾称为栈顶(Top) ,另一端是固定的,叫栈底(Bottom) 。当栈中没有数据元素时叫空栈(Empty Stack)。这个类似于送饭的饭盒子,上层放的是红烧肉,中层放的水煮鱼,下层放的鸡腿。你要把这些菜取出来,这就引出来了栈的特点先进后出(First in last out)。 具体叙述,加下图。栈通常记为:S= (a1,a2,…,an),S是英文单词stack的第 1 个字母。a1为栈底元素,an为栈顶元素.
阅读全文
posted @
2012-11-01 14:22
laozhu1124
阅读(3737)
推荐(7) 编辑