设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3134|回复: 6
打印 上一主题 下一主题

[讨论] SRPG on Map 地图处理代码测试

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1024
在线时间
1389 小时
注册时间
2010-8-9
帖子
3471
跳转到指定楼层
1
发表于 2014-11-28 16:54:05 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 寒冷魔王 于 2014-11-28 17:05 编辑

SRPG on Map
地图处理,用于角色在面向多位元素的路线巡查。
经过一个多月的编写和算法优化,目前发布V2版的公测版。
我是使用的多维数组来处理和保存数据。
数据输出基元数组【【点】,【路线】,【可否放置】】
其中路线用1234来表示,转化RM请自行Input::。
由于Ruby对数组的处理极度低效,Path类的get_path仅仅多循环10次(扩大移动10)。为了弥补这一问题,我将相同的算法用Java实现(= =可怜我这个菜鸟不知道要怎么调用)
这不是一个长距离寻路的算法,仅仅提供在密集位置的移动的可能性。刚好看见R君写的Dijkstra算法RM寻路程序,就用他的吧~
目前只是测试版,由于长时间的开发及频繁地变更,程序内部可能会出现一定的错误。还望大家指出。
另外,本版本是V2的完结版,不会考虑算法的变更。如果涉及程序数据结构的大幅度变更还请跳过该版本。
另外我只学了几天的Java,请不要对Java版提出高级的问题。。


Ruby版

Java版


呼叫:
T君   R君      

评分

参与人数 1星屑 +200 收起 理由
恐惧剑刃 + 200 精品文章

查看全部评分

SRPG on RM 项目研发组 正式成立。目前SRPG·RMVA系统进度88.8%。SMRC Kernel 进度90%
↖(^ω^)↗热烈庆祝~SMRC Ver5.1 SRPG战棋地图移动范围生成脚本正式发布~~
-----------------------------------------------------------------------------------------
SMRC具有高性能、高兼容、定制自由、使用方便的特点。
1.性能,100移动力轻松算出,无压力;
2.兼容,RGSS1-3通吃,效率保证;
3.支持移动形状定制,支持4方位、6方位、正方形或其他任意有移动规律的形状;
4.可以充当高性能寻路来使用。
【链接点此】
-----------------------------------------------------------------------------------------
【2016/01/06更新 | 改版】RM脚本编辑器Gemini
-----------------------------------------------------------------------------------------

Lv3.寻梦者

梦石
0
星屑
1024
在线时间
1389 小时
注册时间
2010-8-9
帖子
3471
2
 楼主| 发表于 2014-11-28 20:37:19 | 显示全部楼层
本帖最后由 寒冷魔王 于 2014-11-28 20:47 编辑
RyanBern 发表于 2014-11-28 19:21
Ruby版的给taroxd看好了
看代码看了两遍没看出来是Dijkstra算法,果然算法是除了自己以外别人都看不 ...


= =那个啥,我是用Java把Ruby版的算法复刻了……不是Dijkstra算法。。

这是第三次尝试,全部都用数组储存。
第一次尝试定义了好多的类,结果又慢又乱= =而且程序有600+
Java版的puts()和print()就占去100行,各种get又是N多行= =
东西没有Ruby的多,但是基本的还是有的。


PS:你的那个我能说我看不懂RGSS吗= =另外用Java的话Ruby的60行变成个400多行是没问题的。
没办法,定一个void put()就要一大堆= =如果新建类表示类型输出的话又要一大堆= =
还有
{
}
占去的行数又有一大堆= =

点评

嗯,好的  发表于 2014-11-28 21:23
你这个学习语言的顺序真心不合适……先接触Ruby再学其他的就会觉得好多都不方便。不过C语言显得过于啰嗦了,C++就好太多了,所以建议学C++  发表于 2014-11-28 21:20
哦,那好吧,其实我想再学C#的  发表于 2014-11-28 21:16
追求效率还用什么Java,C++适合你  发表于 2014-11-28 21:15
这样啊,包装类指的是Ingter之类的?  发表于 2014-11-28 21:14
SRPG on RM 项目研发组 正式成立。目前SRPG·RMVA系统进度88.8%。SMRC Kernel 进度90%
↖(^ω^)↗热烈庆祝~SMRC Ver5.1 SRPG战棋地图移动范围生成脚本正式发布~~
-----------------------------------------------------------------------------------------
SMRC具有高性能、高兼容、定制自由、使用方便的特点。
1.性能,100移动力轻松算出,无压力;
2.兼容,RGSS1-3通吃,效率保证;
3.支持移动形状定制,支持4方位、6方位、正方形或其他任意有移动规律的形状;
4.可以充当高性能寻路来使用。
【链接点此】
-----------------------------------------------------------------------------------------
【2016/01/06更新 | 改版】RM脚本编辑器Gemini
-----------------------------------------------------------------------------------------
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1024
在线时间
1389 小时
注册时间
2010-8-9
帖子
3471
3
 楼主| 发表于 2014-11-28 21:20:32 | 显示全部楼层
RyanBern 发表于 2014-11-28 19:21
Ruby版的给taroxd看好了
看代码看了两遍没看出来是Dijkstra算法,果然算法是除了自己以外别人都看不 ...


引用:
单说执行效率,不说开发效率。

首先,很明显,汇编是最高的,不需要解码,没有任何限制。
然后是C/C++等等直接静态编译到汇编的语言,它们的效率等同汇编,之所以是第二等是因为编译器本身产生的结果可能和【你自己】想要的结果有细微差异,从而降低效率——当然,虽然编译器越来越先进,这种事情越来越少了。
关于C++的编译期计算等等的问题,我们等会儿来说。
下一级别,估计有点超出你的想象了,是Java、JavaScript和LuaJIT/PyPy这些,也就是运行时编译到汇编的语言,它们的效率大概只比C/C++之类低50%的样子——也就是说,C做事需要1s,它们估计也就需要2s,问题是,现代的程序,大部分都是碎片化执行的,真正在CPU上面耗费的时间不多,因此,实际的包含大量IO的程序而言,其实效率上差多。
再下一个级别就是Lua、Python(这里是CPython)这种了,字节码执行,自带虚拟机,效率上大概比C慢出50倍这个数量级。但是某些操作如果语言直接内置(比如Python的列表合成),那效率就和C的相同,有些操作你手动搞,效率就比C慢50倍,因此语言的设计极其重要,要保证需要手动搞的东西都是对效率影响不大的。
再下一个级别就是内存里面直接放解析树,没有字节码的。比如Ruby,大概比C慢200倍左右,恩,不详细说了。
最后一个级别是连解析树都没有,直接一行一行分析完了就执行,比如VimL,大概比C慢1000倍(三个数量级)的样子。

执行效率上,就是这么个等级了。

再说说C和C++,很多人有误解,模板提高效率啊,constexpr提高效率啊什么的。其实,这些C编译器也可以做优化,只是难度会很高——没有语言级别的直接提示。比如说,gcc有一个优化已经出现很久了,就是自动内联函数指针——如果发现几次调用的时候,给出的函数指针都一样,那么直接把这个函数指针固化到函数里面,做成一个特殊的static函数给你调。这多么像C++的模板!我的意思是,不要迷信语言特性,C和C++的基本原理都是完全把一种概念模型上的表述换成另外一种表述,这种转换中的效率提升往往并没有那么明显,但的确是有的。它们的确是效率相差不大的两门语言。
SRPG on RM 项目研发组 正式成立。目前SRPG·RMVA系统进度88.8%。SMRC Kernel 进度90%
↖(^ω^)↗热烈庆祝~SMRC Ver5.1 SRPG战棋地图移动范围生成脚本正式发布~~
-----------------------------------------------------------------------------------------
SMRC具有高性能、高兼容、定制自由、使用方便的特点。
1.性能,100移动力轻松算出,无压力;
2.兼容,RGSS1-3通吃,效率保证;
3.支持移动形状定制,支持4方位、6方位、正方形或其他任意有移动规律的形状;
4.可以充当高性能寻路来使用。
【链接点此】
-----------------------------------------------------------------------------------------
【2016/01/06更新 | 改版】RM脚本编辑器Gemini
-----------------------------------------------------------------------------------------
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-10 13:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表