请教大佬们一个游戏的提示算法问题(这关很难过)

感觉跟“华容道”有点像,问问GPT呗,肯定可以解决

GPT提供的都是用哪些算法,也不会提供具体的呀,算应该是能算出来 就是比较复杂 :joy:

反编译的工程早就出来了

你反编译 只能反编译 到 微信开发者,还能还原cocos的代码不成

就是cocos的工程

gh_72e543f4bb4f_258
这种?

我怎么只能反编译到微信开发者工具的,,,,没有找到cocos的项目 哈哈

是嘞 这种 是写死的 还是实时算出来的路径呀

计算的~~

这种可以直接算,每一只狗能旋转的点是自身长度九宫格外圈的有效点,能否移走出去也是看当前方向移动路线上的点是否被占用(或是线段相交检测靠谱点)

我试了一下游戏, ta的提示, 如果要两步的情况, ta会提示你先转动哪一只,这様不像是简单直接算, 更像是决策树那様,佚代状态找出最优解

你这个游戏是 正方形的 角度这些只有固定的角度,但是原游戏的不是正方形,随着物体长度不一样,所接触的点也不一样,换一个角度,接触到的圆的多少也会变化,涉及到的计算不单单是一条线上的,还会有相邻线上的遮挡这些,我看了原游戏的资源 提示 确实是写死的 不是实时计算出来的

直接算不行的,你这样只能算到当前这步,还有如果后面的可以移动,会导致当前周围的点发生变化,提示肯定不能只算当前物体周围,需要全部都遍历一遍,然后还要知道所有情况,最后才能出去的

还在讨论这个啊,说了万事不决靠搜索,像这种小棋盘的问题,状态空间比较小,不管是什么规则和目标,无论是向前看多少步,直接用搜索就行了。区别无非是深度搜索还是广度搜索,怎么优化剪枝的问题,如果觉得搜索慢,可以预计算好存起来。
可以学一下,8皇后问题,以后这种小棋盘解谜或者生成的问题,一套办法直接就解决了。A*其实就是一种搜索,也可以看看。

编辑:搜索就是一种比较聪明的穷举,你也可以认为上面说穷举也不算错。

你说的这些理论 其实 我也知道,A*我也用过,但是真正做下来,才知道这个游戏涉及的东西远不止你想的那么简单,理论确实就是可以实现,但是中间遇到的各种问题 不是简单的大佬你几个观点就能解决的,如果有时间的话大佬可以去做个demo试试便可,我简单举个例子,image 如果是这种状态的话 直线是走不通的,需要涉及到上面那个圆是否被遮挡,再旋转角度,又会出现接触到的点不一样,所有之前的点都会被打乱,而且长度不一样,接触的点的范围也差的很多(因为旋转问题),我也知道你说的只要搜索,穷举一定能实现,但是穷举也得有一个限度不是,反正 我是准备写死了,有大佬在的话 做个demo就知道中间需要遇到的一些问题了

大佬~你的实现思路 能分享一下么 ,万分感谢

我比较菜 没什么思路 获取到原游戏的tipjson是写死的,就是每个关卡里的物体上都比较一个提示要出去的方向,然后就播放那个提示出去的方向就行了,然后我看了一些算法,还是动态规划算法 是一种解决方法,不过我没往下继续写
image 这个

你刚才这些细节其实就是 旋转候选 和 是否走通 的实现问题。和我这个不冲突,我这个是在这2个实现都具备的基础上来做的,对所有旋转候选,进行旋转,并判断是否走通。然后搜索下一步旋转候选。
也就是说这2个必须要先实现清楚,再套上搜索的框架。
旋转候选:每次的状态其实比较少,一个鱼的旋转候选只有几个,尾部不动,头部固定到圆上的这种角度就几个情况。你把鱼看成obb斜矩形,后面的圆拿位置和这斜矩形相交,就能知道哪几个圆被占用。
是否走通:就按方向扫秒 sweep 这个obb,是否有其他占用的圆和这个斜矩形相交来判断。
每个搜索状态 = 所有鱼的分布 + 圆的占用位置。搜索状态 -> 旋转一次 -> 到达下个搜索状态。然后加上判断搜索状态是否可走通(目标)。就可以了。

算了。你就按预存的提示吧比较简单。原来那个游戏我自己玩过来几关,发现每次可供旋转的鱼以及旋转的角度都很有限,而且基本2-3次旋转就能找到一个可以出来的。这种状态少步骤又少的非常适合广度搜索。

哈哈,谢谢大佬, 主要是 我还是个菜鸡,之前对算法什么的也都不太了解,就用过A*,obb是啥 我也才刚知道,以前都是直接用的cocos的碰撞,去计算什么的 暂时还有些头疼,不太会搞,还是先写死一步一步来吧