`
junlas
  • 浏览: 63586 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论
文章列表

A*的总结

   一直就很想把A*看一下,虽然所早的项目一直没用上A*,但是对它还是情有独钟, 可能是打心底的对寻路比较有好奇感把。原本网上关于A*的解释说明的文章数不胜数, 但是我还是想把自己所理解的写在自己的博客上,方便日后的回顾, 当然还是从各位大牛那一点点的积累下来的。 一、A*算法总结:
后面的几款游戏上线会继续来这里mark一下。 下面是地址: http://www.agame.com/game/Lovely-Mermaid.html http://www.gamesgames.com/game/Lovely-Mermaid.html http://www.girlsgogames.com/game/Lovely_Mermaid.html
一)适配器模式应用场景:          将一个类的接口转换成为客户希望的另外一个接口;使得原本接口不兼容而不能一起工作的那些类可以一起工作;   二)类图如下:(实例参考网络)         三).程序代码如下(参考于网络):        public class TeaCup { public void steepTeaBag(TeaBag teaBag) { teaBag.steepTeaInCup(); } }   public class TeaBag { boolean teaBagIsSteeped; pu ...
现在已经加入了flash的行列中了,但是还是不舍得抛掉JAVA,偶尔还是会写写java代码; 感觉要比设计模式中的简单的观察者模式有所改进,也有诸多不足,还望多指点指教。 谢谢~~~~~   不想说太多的解释(正在上班中... .),先画个UML类图看看吧,很丑陋(没有工具,就直接用windows自带的画图工具了):       画个图累死了~~~   下面直接看代码吧:(还是以网上的"模拟公交车上的打卡机打卡"为例)       //----------------------模拟公交车上的打卡机打卡-------------CardMachi ...
1)桥梁模式的用意与应用场景:     桥梁模式的用意是"将抽象化(Abstraction)与实现化(Implementation)脱耦,使得二者可以独立地变化"。这句话有三个关键词,也就是抽象化、实现化和脱耦。 桥梁模式则是解决在不破坏封装的情况下如何抽取出它的抽象部分和实现部分,它的前提是不破坏封装,让抽象部分和实现部分都可以独立地变化,在例子中,我们的邮件服务器和邮件模版是不是都可以独立地变化?不管是邮件服务器还是邮件模板,只要继承了抽象类就可以继续扩展,它的主旨是建立一个不破坏封装性的可扩展架构。 2)UML类图:  
1)Strategy模式的应用场景一般是:- 具有多种可能需要实现的算法- 需要在程序中对算法进行动态切换-对象的行为需要根据上下文动态的改变。可以考虑使用策略模式. 如:邮件服务器发送邮件,邮件格式有很多种,比如纯文本格式,超文本格式等,我们的程序需要实现 这个功能,就是可以让用户选择不同的邮件格式进行发送。 官方定义:Strategy模式定义一个算法族,并把每一种可能的算法封装成一个类,这些算法可以在应用程序内部被动态替换。此模式让算法的变法不会影响到使用算法的客户。   2)UML类图:   3)代码: package test7.strategy; ab ...
学习设计模式的几点说明:1)应用场景;2)UML类图;3)代码。   工厂模式中抽象工厂代码。     package test6.abstractFactory; import org.junit.Test; abstract class Car { public abstract void printName(); } class BenzCar extends Car { @Override public void printName() { System.out.println("Benz Car... ...
学习设计模式的几点说明:1)应用场景;2)UML类图;3)代码。   工厂模式中工厂方法代码。 package test6.factoryMethod; import org.junit.Test; import org.python.modules.newmodule; import org.python.parser.ast.argumentsType; abstract class Car { public abstract void printName(); } class BenzCar extends Car { @O ...
学习设计模式的几点说明:1)应用场景;2)UML类图;3)代码。   关于工厂模式中简单工厂代码。 package test6.simpleFactory; import org.junit.Test; abstract class Car { public abstract void printName(); } class BenzCar extends Car { @Override public void printName() { System.out.println("Benz Car..."); ...
Floyd算法仍从图的带权邻接矩阵出发。算法的主要思想是: 首先定义原图的矩阵为D(-1)         。即: D(-1)[i][j] = G.arcs[i][j]; D(K)[i][j] = Min{D(k-1)[i][j] , D(k-1)[i][k] + D(k-1)[k][j] }     package test09; public class Floyd { private int[][] adjMat; private static final int INFINITY = ~(1<<31); public F ...
  package testShortPath; public class Vertex { public char label; public boolean isVisited; public Vertex(char label) { this.label = label; } }  package testShortPath;   import java.util.LinkedList; import java.util.List; public class ShortDistAndPath { public int distan ...
  这个算法的实现是基于图的邻接矩阵表示法。这里使用的是Dijkstra来计算最短路径。    //下面是代码:package testShortPath; public class Vertex { public char label; public boolean isVisited; public Vertex(char label) { this.label = label; } }  package testShortPath; public class ShortDistAndPath { public int distance ...
MySQL同时执行多条SQL语句解决办法。最近做一个数据库初始化工具的时候发现了这个问题,就是在一个Statement中执行一条SQL语句的时候可以正确执行,如果同时执行多条,就会报SQL语法错误,伤透了脑筋。 经过网上查找,叨客软件站发现有两种解决办法: 1、最简单的办法,在MySQL的连接字符串中设置allowMultiQueries参数置为true。 2、在程序中对SQL语句以分号拆分成多条SQL语句,然后使用Statement的addBatch方法,最后executeBatch就行。 结论:第一种方式最简单。 希望对以后遇到此类问题的朋友有所帮助。
delete 多表删除的使用 1、从数据表t1中把那些id值在数据表t2里有匹配的记录全删除掉 DELETE t1 FROM t1,t2 WHERE t1.id=t2.id 或 DELETE&nbsp; FROM t1 USING t1,t2 WHERE t1.id=t2.id 2、从数据表t1里在数据表t2里没有匹配的记录查找出来并删除掉 DELETE t1 FROM t1 LEFT JOIN T2 ON t1.id=t2.id WHERE t2.id IS NULL 或 DELETE&nbsp; FROM t1,USING t1 LEFT JOIN T2 O ...
表:   select * from cat;   select * from tab;   select table_name from user_tables; 视图:   select text from user_views where view_name=upper('&view_name'); 索引:   select index_name,table_owner,table_name,tablespace_name,status from user_indexes order by tab ...
Global site tag (gtag.js) - Google Analytics