Python 探险的指南针

Python 探险的指南针,python,string,text,ascii,adventure,Python,String,Text,Ascii,Adventure,我正试图为文本冒险编写一个ascii罗盘。我在这个url上找到了我想做的事情: 我为自己做了以下修改: north=“山丘” 韦斯特=“一间真正黑暗的房间” #west=“较长的文字会破坏位置” east=“地牢入口” 南部=“[X]” n=“n” s=“s” 垂直线=”║" hzt_线=”⯇ W══ (C)══ E⯈ " 打印(北中(72“)) 打印(r)▲“.rjust(len(西)+10)) 印刷品(右“+n.rjust(透镜(西)+10)) 打印(右“+垂直线.右(西)+10)) 打印

我正试图为文本冒险编写一个ascii罗盘。我在这个url上找到了我想做的事情:

我为自己做了以下修改:

north=“山丘”
韦斯特=“一间真正黑暗的房间”
#west=“较长的文字会破坏位置”
east=“地牢入口”
南部=“[X]”
n=“n”
s=“s”
垂直线=”║"
hzt_线=”⯇ W══ (C)══ E⯈ "
打印(北中(72“))
打印(r)▲“.rjust(len(西)+10))
印刷品(右“+n.rjust(透镜(西)+10))
打印(右“+垂直线.右(西)+10))
打印(右“+垂直线.右(西)+10))
印刷品(西面、右面(东面))+hzt_线+东面)
打印(右“+垂直线.右(西)+10))
打印(右“+垂直线.右(西)+10))
印刷品(右“+s.rjust(透镜(西)+10))
打印(r)▼“.rjust(len(西)+10))
印刷品(南部中央(透镜(西)+透镜(hzt_线)+透镜(东)-5“”)
问题是如何计算标签的正确空格,这取决于文本的长度和是否超出中心

我也被困在空白的计算中..结果应该是这样的:

                   This is up
                       ▲
                       N               
                       |               
 To the left   ◀ W ── [C] ── E ⯈   Dining Room
                       |               
                       S              
                       ▼ 
                    Kitchen            
 
代码看起来也很难看,也许有人知道更聪明的解决方案

非常感谢你的帮助


Rufnex

我在使用代码时遇到问题。由于某种原因,左箭头图形弄乱了居中。当我更改字符时,效果很好:

north = "The Hills"
west = "A realy dark room"
east = "Entrance to the Dungeon"
south = "[X]"

n = "N"
s = "S"
vert_line = "║"
#hzt_line = " ⯇ W ══ (C) ══ E ⯈ " # for some reason the left arrow graphic messes up the centering
hzt_line = " < W == (C) == E > "

# synchronize east/west lengths and get line length

labelsize= max(len(west),len(east))
westpad = west.rjust(labelsize)
eastpad = east.ljust(labelsize)
long_line = westpad+hzt_line+eastpad
line_length = len(long_line)

# print compass

print(north.center(line_length))
print(r"▲".center(line_length))
print(n.center(line_length))
print(vert_line.center(line_length))
print(vert_line.center(line_length))
print(long_line.center(line_length))
print(vert_line.center(line_length))
print(vert_line.center(line_length))
print(s.center(line_length))
print(r"▼".center(line_length))
print(south.center(line_length))
north=“山丘”
韦斯特=“一间真正黑暗的房间”
east=“地牢入口”
南部=“[X]”
n=“n”
s=“s”
垂直线=”║"
#hzt_线=”⯇ W══ (C)══ E⯈ “#由于某种原因,左箭头图形会弄乱对中
hzt_line=“”
#同步东/西长度并获取线长度
标签尺寸=最大值(透镜(西)、透镜(东))
westpad=west.rjust(标签大小)
eastpad=east.ljust(标签大小)
长输电线=西输电线+hzt电线+东输电线
直线长度=长度(长直线)
#印刷罗盘
打印(北中心(直线长度))
打印(r)▲“.中心(直线长度))
打印(正中(直线长度))
打印(垂直线中心(线长度))
打印(垂直线中心(线长度))
打印(长线。中心(线长))
打印(垂直线中心(线长度))
打印(垂直线中心(线长度))
打印(s.中心(直线长度))
打印(r)▼“.中心(直线长度))
打印(南部中心线(直线长度))

这回答了您的问题吗?@quamrana谢谢,这对进一步的测试很有帮助。非常感谢!非常好。我认为数组主题是一个unicode问题。ljust..我没有想到;o)