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

平台游戏地图字符串列表随机放置'E'无效,求代码修复方案

问题解决:随机放置敌人标记到地图中

你的代码问题出在遍历列表元素的方式上:当你用 for i in line 循环时,i 只是列表元素的副本,并非对列表对应位置的引用。所以即使你把 i 改成了 'E',也不会修改原列表 line 里的元素,最终的 level_map 自然看不到敌人标记。

修正后的代码

import random

old_level_map = [
'6--------------------------------------------------------------------7',
'L                                                                    I',
'9____________________________________________________________________8',
'                                                                      ',
'                                                                      ',
'      P                                                               ',
'                                                                      ',
'                                                                      ',
'6--------------------------------------------------------------------7',
'L                                                                    I',
'9____________________________________________________________________8']

level_map = []
for j in old_level_map:
    line = list(j)
    # 改用索引遍历,直接修改列表对应位置的元素
    for idx in range(len(line)):
        char = line[idx]
        if char.isspace():
            if random.random() < 0.1:
                line[idx] = 'E'
    level_map.append(line)

# 打印验证结果
for row in level_map:
    print(''.join(row))

关键修改说明

  • 通过 range(len(line)) 获取元素索引,直接操作 line[idx],这样改动会直接作用到原列表上。
  • 去掉了冗余的 i.replace(i, 'E'),直接赋值 'E' 即可,代码更简洁。
  • 新增了打印验证逻辑,方便你确认敌人标记是否正确生成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 22:28:20