【问题标题】:How can I use x, y coordinate matrices to choose where a character appears in a string with python?如何使用 x、y 坐标矩阵来选择字符在 python 字符串中出现的位置?
【发布时间】:2016-09-30 20:50:36
【问题描述】:

我正在尝试制作一个简单的迷宫游戏来使用遗传算法测试 NNS。 每个测试的迷宫都将使用一个矩阵来保存诸如障碍物、起点、终点和玩家当前位置之类的东西的 x、y 点。我需要帮助的主要是将正确的字符放在字符串中的正确位置,这样当读取第 1-25 行的字符串时(可能使用 for 循环),它将读出地图的布局。例如,如果“o”是空格,则障碍点 1,1 3,4 和 1,5 将如下所示: 第一个字符串|XoooX|, 第二个字符串|ooooo|, 第三串|ooooo|, 第四个字符串|ooXoo|。 有任何想法吗?提前致谢!

【问题讨论】:

  • 哪一部分有问题?
  • 我不知道如何在正确的位置和/或正确的字符串中获取 x。它必须与使用 y 选择一个字符串和一个字符串连接将 x 放在字符串中的正确位置有关,但我不知道如何做到这一点,也不知道如何将它们从矩阵中拉出来在障碍矩阵内。
  • 向我们展示您的尝试。将您的代码示例放在原始问题中。

标签: python arrays string matrix coordinate


【解决方案1】:

您可能正在寻找类似以下内容的内容:

width = 6
height = 6
coords = [(1,1),(3,4),(1,5)]
print('\n'.join(['|' + ''.join(['x' if (x,y) in coords else 'o' for x in range(width)]) + '|' for y in range(height)]))

使用列表推导,我们可以轻松地一次构造每一行:

''.join(['x' if (x,y) in coords else 'o' for x in range(width)])

基本上,如果坐标包含某些内容,则打印x,否则使用o

在...中添加侧边栏

'|' + ''.join([...]) + '|'

''.join() 是一个very useful function

然后我们要做的就是对每一行重复此操作,确保在每一行之间插入一个换行符。

'\n'.join([...])

【讨论】:

    猜你喜欢
    • 2021-03-30
    • 2010-10-28
    • 2021-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-31
    相关资源
    最近更新 更多