发布时间:2022-11-28 21:07:07来源:网络整理浏览:25
在标题图片中,我用完了……一条飞龙?
听说最近知乎上随机地图很火。
一组随机地图生成方案
简单粗暴的地图生成
我和上面的比起来还差得很远,甚至我建的东西只能说看起来像个地图,不过也只是个png,没有任何可穿越路径之类的附加功能。
买一盒1000块(准确地说是36*28=1008块)的拼图回家玩。
工具:PS(用于构建单位)、Numpy库的矩阵。
一,地牢。
工作原则:
①图板分为内圈和外圈吃鸡图生成器,并给出起始有效格子范围(限于内圈)和步数(如256)。
②每一步,向上、下、左、右任意方向移动1,将空白单元格变为有效单元格(矩阵元素运算)。对于已经是有效格子的位置,再重复一遍。向任一方向移动的概率为 0.25,因此整个路径倾向于围绕地图板盘旋。如果偏差过大,达到边界,则整个生成过程终止。
③检查每个格子的四连通性,将相邻的有效格子连接起来。
例子:
没有更复杂的...
核心代码:
def crt(i,j):
a=b=15 #矩阵行和列的范围从0到30,15使得起始位置正好在中心
对于范围内的 e(i,j):
f=(0,3)
如果 f==0:
b=b-1
如果 f==1:
一=一+1
如果 f==2:
b=b+1
如果 f==3:
a=a-1
if a29: #map board 31*31
休息
如果 b29:
休息
.blit(m0,(16+a*32,16+b*32))
d1[a,b]=1
这种以单字母顺序命名变量的方式,被《和游戏开发指南》的作者Al痛恨,点名批评。这套代码是之前做的,懒得改了。这种习惯无异于在日后埋下地雷,千万不要吸取教训。
二、海岛。
有16个预制单元,
它仿照 War3 地图纹理,请参见
魔兽争霸3的自动拼接地形渲染方法- - 博客园
魔兽自动地图组件绘制原理 - 专栏 - CSDN博客
工作原则:
①用62*62的矩阵,每个格子2行2列(后来才知道四元数数组可以拆,甚至是普通的31阶矩阵。。。)。
②关键是对于任意一个格子,将左上格子的右下角赋给左上格子,左格子的右下角赋给格子的左下角,上格子的右下角赋给网格的右上角...让交界处的所有相邻数据相等。(真是笨办法,直接调用就行了)
③直接产生的会是均匀的噪声,所以需要一些技巧: 1. 使以圆心为圆心,设定值为半径的圆外的土地产生概率急剧下降(比如80%的机会,0为任何陆地 1) 成为海洋。2.按照设定的比例擦除单格孤岛和水坑。只要外面周围的值相等(0或1),里面也会一样。
④让草地的0部分变成2,创造出比陆地部分更小的草地。
例子:
3.黑白世界地图。
先给大家介绍一下单位吧,不是都用过的。
可以发现每个格子对应一个八元数组。吸取上一课的教训,使用四元素数组(左下、右下、右上、右下)就足够了。
这次0为空白,1为有效。我必须做几件事:
① 放心地随机生成。
②填湖割岛,原理同上。如果检测到合格的格子吃鸡图生成器,那么大概率四个连接会统一成land/sea,小概率也会统一外圈。
③去掉边缘,剪掉四个角。让八条直线以外的区间内的数值归零。
④苦,这是工作量的大头!我必须将值与单元格的形状相匹配,并且有 256 个可能的八位字节。我不会对自己如此苛刻,并且会以一些看起来超自然的边界为代价简单地退化很多。不过一般都能糊弄~
例子:
奇怪对不对,捂脸(/ω\)
007球探网即时比分 足球手机版下载_007球探网即时比分 足球手机版「EV2.0」下载
热门手游
下载02s515排水检查井下载_02s515排水检查井「EV2.0」下载
热门手游
下载0515返利网下载_0515返利网「Ve2.2」下载
热门手游
下载03g101图集下载_03g101图集「V1.25」下载
热门手游
下载1.70合击下载_1.70合击「VE1.10」下载
热门手游
下载1 2 fan club下载_1 2 fan club「EV2.0」下载
热门手游
下载1.70金币版下载_1.70金币版「V1.2」下载
热门手游
下载.net framework 3.0下载_.net framework 3.0「VE1.10」下载
热门手游
下载