You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

世界生成开发问题:输出不符合预期形态求助

世界生成功能输出不符合预期问题解决

问题现状

当前运行代码后,输出为每行单独一个#,示例如下:

...(剩余重复行省略)

使用的Python代码:

import random

def generate():
    line = ""
    hillSize = random.randint(1, 10)
    line = "#\n" * hillSize
    return line

for i in range(10):
    print(generate())

期望生成的世界形态为同一行内由连续或间隔的#组成地形,不同行长度不同,允许出现空行,示例:

########

问题原因

代码中"#\n" * hillSize会生成hillSize个#加换行的组合,导致每个#单独占一行;同时循环调用generate()时,print()会自动在返回内容后再加一个换行,进一步增加了多余空行。

解决方案

方案1:生成连续#行+随机空行

先将多个#拼接成单行,再添加换行;同时加入随机空行的逻辑,匹配预期的世界形态:

import random

def generate():
    # 30%概率生成空行,可自行调整概率
    if random.random() < 0.3:
        return "\n"
    hill_size = random.randint(1, 10)
    # 把多个#拼成一行,末尾加换行
    line = "#" * hill_size + "\n"
    return line

for _ in range(10):
    # 用end=""避免print自动额外添加换行
    print(generate(), end="")

方案2:生成带空格的不规则地形

如果需要生成类似# ###这种带间隔的地形,可以随机在一行内插入空格:

import random

def generate():
    if random.random() < 0.3:
        return "\n"
    line_length = random.randint(1, 10)
    line = []
    for _ in range(line_length):
        # 70%概率生成#,30%概率生成空格,可调整比例
        line.append("#" if random.random() < 0.7 else " ")
    return "".join(line) + "\n"

for _ in range(10):
    print(generate(), end="")

内容的提问来源于stack exchange,提问作者frag

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 05:12:35