对象间的(通信 ,串联)网络的构思 !(口述题,不用动脑子) 本帖最后由 hetengfei_ 于 2012-02-06 10:41:56 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可走点() 做成一个Function , 通过棋子坐在坐标,返回可走坐标。如 :function 可走点(){ var r = []; r.push([this.坐标.x + 3,this.坐标.x + 1]) r.push([this.坐标.x + 2,this.坐标.x + 2]) return r} 这样的话: 每个棋子, 先调用 [function 可走点()] , [function 可走点()]又要 “读取整个棋盘的布局”,才对知道可走点! “读取整个棋盘的布局 ”可能又要去遍历 所有棋子的座标 才行。 这样设计,游戏就相当混乱! 效率会底下。 给下面的智能下棋带来了很多麻凡! 不太了解下棋的算法,基于面向对象的设计原则,提出一些设想,供 LZ 参考:棋盘作为基本对象,提供对所有棋子的访问和操作方法,具体实现时可能不一定由棋盘对象完全实现,而是适当调用棋子对象相对应的方法,此为封装设计;棋子当然也应当设计为对象,但 LZ 的设计试乎想保留一些冗余(如 #1 所诉),从设计逻辑的复杂性来说,如不是为性能考虑应当避免此类冗余。至于说遍历的效率问题,作为棋盘这样大小的一个数组,其实是非常小的。如果不是算法设计有问题,远没有到要考虑遍历的效率的程度。如果 LZ 认为有必要考虑,可以参考数据库管理的模式,为要反复计算的结果建立索引,在发生相应操作时,实时更新索引中的值。但索引的设计一定要合理,否则可能更新索引付出的代价更大。 js中函数递归调用,提示processHover,processLeave未定义 急,一个js文件中出现这个东东 什么意思 在线等 请教ajax加载百度分享问题 表格移位问题 JS中return的用法遇到问题,求助 求验证IP正则表达式 js新手问一个checkbox全选问题??? 在线急等!求助,关于javascript的小问题! javascript或applet可否实现独占cpu时间方式工作? node.js 怎么学习,它可以做哪些事情 懂htmlarea编辑器 的各位大虾`恩人,求您进来看一眼吧! 浏览器中两个标签页能否相互影响?
var r = [];
r.push([this.坐标.x + 3,this.坐标.x + 1])
r.push([this.坐标.x + 2,this.坐标.x + 2])
return r
}
每个棋子, 先调用 [function 可走点()] ,
[function 可走点()]又要 “读取整个棋盘的布局”,才对知道可走点!
“读取整个棋盘的布局 ”可能又要去遍历 所有棋子的座标 才行。
这样设计,游戏就相当混乱!
效率会底下。
给下面的智能下棋带来了很多麻凡!
棋盘作为基本对象,提供对所有棋子的访问和操作方法,具体实现时可能不一定由棋盘对象完全实现,而是适当调用棋子对象相对应的方法,此为封装设计;
棋子当然也应当设计为对象,但 LZ 的设计试乎想保留一些冗余(如 #1 所诉),从设计逻辑的复杂性来说,如不是为性能考虑应当避免此类冗余。
至于说遍历的效率问题,作为棋盘这样大小的一个数组,其实是非常小的。如果不是算法设计有问题,远没有到要考虑遍历的效率的程度。如果 LZ 认为有必要考虑,可以参考数据库管理的模式,为要反复计算的结果建立索引,在发生相应操作时,实时更新索引中的值。但索引的设计一定要合理,否则可能更新索引付出的代价更大。