JDK下载,下载Java SE Development Kit 7(这是Java开发标准版)地址:http://www.oracle.com/technetwork/java/javase/index.html Eclipse下载,下载Eclipse IDE for Java EE Developers,用于开发J2ee项目 地址:http://www.eclipse.org/downloads/ Tomcat下载,在开放中使用的最广泛的Web容器就是Tomcat,一只非常有名的大猫。目前的版本已经去到7.0了,我下载的就是7.0,但是使用的较多的是6.0 地址:http://tomcat.a Read More
在Windows下折腾Ruby on rails,总会碰到各种各样你所意想不到的问题,所以过来人一般都会叫你用Linux吧,有条件的直接上Mac,但是对于我们这种苦逼的校园网用户来说,用Linux吧,校园网客户端不支持,Mac?屌丝用的???下面直接切入正题。。。今天在学校Ruby on rails的时候,就遇到了一个无法连接数据库的问题。我装的rails版本是3.2.1,默认的数据库是Sqlite3,但对于习惯了mysql的用户来说,还是用会mysql吧。错误提示:mysql2::error <can't connect to mysql server on 'loca Read More
贪婪算法的基本思想:通过一系列步骤来构造问题的解,每一步都是对已构造的部分解的一个扩展,直到获得问题的完整解。贪婪算法中,每一步“贪婪地” 选择最好的部分解,但不顾及这样选择对整体的影响(局部最优),因此得到的全局解不一定最好的解,但对许多问题它能产生整体最优解。具体算法描述: 1: void Knapsack(int n,float M, float v[], float w[], float x[]) 2: { 3: Sort(n, v, w); 4: int i; 5: for(i = 1; i < n; i++) 6: x... Read More
对于一个问题,我们常常会有多种的解决方法,也就是说有多种的算法可以解决这个问题,那么怎样评价一个算法的好坏呢?一个算法好不好体现在运行该算法所需要的计算机资源的多少上,而该计算机资源最重要的两个方面就是时间和空间。而我们常常将改进算法的精力集中在时间效率上。1.运行时间度量单位那么用什么来度量这个运行时间呢?时,分,秒吗?更常用的方法是把基本操作次数作为算法运行时间的度量单位。2.增长次数(增长幅度)小规模输入在运行时间上差别不足以将高效的算法和低效的算法法区分开来,所以需要考虑大规模输入时执行次数的增长次数。3.算法的最优、最差和平均效率最差效率:指当输入规模为n时,算法的最坏情况下的效率。 Read More
通常,在分析算法的计算复杂性时,都将加法和乘法运算当做基本运算来处理,即将执行一次加法或乘法运算所需的计算时间当做一个仅取决于计算机硬件处理速度的常数。然而,当需要精确地表示大整数并在计算结果中要求精确地得到所有位数上的数字,就必须用软件的方法来实现大整数的算法运算。下面就来学习一下如何使用算法来计算大整数的乘法。设X和Y都是n位二进制整数,现在要求计算它们的乘积XY。算法的基本思想如下:将n位二进制整数X和Y都分为2段,每段长为n/2(为了叙述简单,假设n是2的幂),由此可以得到X = A2n/2+ BY = C2n/2+ DXY = (A2n/2+ B)(C2n/2+ D) = AC2n+ Read More
二分搜索算法是运用分治策略的典型例子,适用于从已经排序好的n个元素中找出某一特定元素x,注意前提是该数组是已经排序了的。二分搜索算法的基本思想是将n个元素分成个数大致相同的两半,取a[n/2]与x作比较,如果x=a[n/2],则找到x,算法介绍;如果x<a[n/2],则只需要在数组a的左半部分继续搜索;如果x>a[n/2],则只要在数组a的有半部分继续搜索。在最坏的情况下,二分搜索算法需要用O(logn)的时间(这个不是很懂,望某些人可以解答一下)。具体算法描述:(C++版)template< class Type >int BinarySerarch(Type a[] Read More
分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立。递归地解这些子问题,然后将各个子问题的解合并并得到原问题的解。它的一般的算法的设计模式如下:divide-and-conquer(P){ if(|P|<=n0) adhoc(P); divide P into smaller subinstances P1,P2,P3,...,Pk; for(i=1;i<=k;i++) yi = divide-and-conquer(Pi); return merge(y1,y2,y3,...,yk);}说明:|P|表示问题P的规模 ... Read More
面向对象设计 在本节中将会创建三个类,第一个是Sprite类,Sprite类是一个抽象类;第二个UserControlledSprite类,继承于Sprite,对象是一个用户可以控制的精灵;第三个是AutomatedSprite,同样是继承于Sprite类,这个类是创建自动精灵的。 Sprite类的成员: textureImage Texture2D ... Read More
碰撞检测 在游戏的开发中,碰撞检测是最常遇到的,对于每个游戏,碰撞检测都几乎是不可避免的,无论是精灵与精灵的碰撞,精灵与屏幕边框的碰撞。下面我们就来谈谈碰撞检测最常用的方法。 实验一:不让精灵跑出游戏窗口 如何让精灵限制在游戏窗口内而不跑出窗口,思路是一旦精灵移动到屏幕边缘,就做相应的处理,让精灵不再动了 if (ringsPosition.X < 0) ringsPos... Read More
动画 XNA游戏中的动画是由大量独立图片构成的,将所有独立图片绘制到一张图片上,这张图片称作精灵表,然后不断地加载该图片的特定部分来实现动画效果。 更改项目帧频的方法: 在项目类的构造器末尾添加一行代码 TargetElapsedTime = new TimeSpan(0,0,0,0,50); 这一行代码告诉XNA每50毫秒调用一次Update方法。 而对于只想改变某个精灵的帧频... Read More