我正在使用程序生成来构建一个3D游戏.我试图连接一些预先生成的房间,无论如何,玩家总能到达地图中的任何其他房间.房间有"可能的入口点",连接走廊必须连接.但是,并非所有入口点都可以从房间内的所有其他入口点到达.例如,可能存在陷阱,因此底部的玩家将无法穿过房间到达顶部,并且必须找到另一种方式.
给定嵌入在3d空间中的一组预先存在的有向图,添加一组最小总长度的(双向)路径,将子图连接成更大的图.如果失败(因为一些研究表明这是NP-Hard),使得路径尽可能短,以便在短时间内计算.
我最好的解决方案是基于这个程序生成帖子,他创建了所有节点的Delaney三角剖分.我将房间的每个强连通组件(例如,陷阱的顶层和底层)视为单独的节点,然后构建MST,但这限制了一些更有趣的可能性(例如,必须通过两条单向路径回到你开始的地方).
有谁知道解决这个问题的更好方法?
我想像这样模糊地定义一个小部件:
{% block css %}
.mywidget {
css: goes_here;
{% endblock %}
{% block widget %}
<div class="mywidget">
<!-- structure goes here -->
</div>
{% endblock %}
{% block script %}
$( ".mywidget" ).addFunctionality(stuff)
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
换句话说,小部件需要的CSS减速度,内容是什么(最好是以某种方式参数化),以及文件末尾需要的脚本.然后,我希望能够扩展布局模板,向主体添加小部件(可能是具有不同参数的相同类型的多个小部件),并将CSS和javascript正确添加到顶部和底部布局模板,每个小部件类型一次.
这看起来像一个非常干净和简单的设计,并从本机UI设计的角度来看,我很困惑为什么我找不到任何如何做这样的事情的例子.