我将代码与其他训练示例代码进行了比较并进行了比较,并且所有内容都匹配。这是我的问题:我有一个健康栏,当我受到伤害时,栏会减少。
问题是,在我的代码中,我使用█管道线后,条形码永远不会停留,它总是动态移动。当我使用/管道栏始终保持放置,没有问题。我猜我的终端工具中有一些东西(使用Pycharm),它不喜欢ascii代码219.如果它在阅读论坛上很重要,那么工具设置为UTF-8。下面的示例可能无法正确格式化但顶部可以看到|使用█时移动,使用/时底部部分正常。
______________________________ __________
CARLOS: 2210/3260 |■■■■■■■■■■■■■■■■■ | 132/132 |//////////|
__________________ __________
CARLOS: 2219/3260 |///////////////// | 132/132 |//////////|
代码:
def get_stats(self):
hp_bar = ""
bar_ticks = (self.hp / self.maxhp) * 100 / 4
mp_bar = ""
mp_ticks = (self.mp / self.maxmp) * 100 / 10
while bar_ticks > 0:
hp_bar += '█'
bar_ticks -= 1
#num_spaces_needed = (100/4) - len(hp_bar)
#str_spaces_needed = ""
#while num_spaces_needed > 0:
#str_spaces_needed += " "
#num_spaces_needed -= 1
while len(hp_bar) < 25:
hp_bar += " "
while mp_ticks > 0:
mp_bar += "/"
mp_ticks -= 1
while len(mp_bar) < 10:
mp_bar += " "
hp_string = str(self.hp) + "/" + str(self.maxhp)
current_hp = ""
if len(hp_string) < 9:
decreased = 9 - len(hp_string)
while decreased > 0:
current_hp += " "
decreased -= 1
current_hp += hp_string
else:
current_hp = hp_string
mp_string = str(self.mp) + "/" + str(self.maxmp)
current_mp = ""
if len(mp_string) < 7:
decreased = 7 - len(mp_string)
while decreased > 0:
current_mp += " "
decreased -= 1
current_mp += mp_string
else:
current_mp = mp_string
print(" _______________________________ __________ ")
print(bcolors.BOLD + self.name + " " +
current_hp + " |" + bcolors.BAR + hp_bar + bcolors.ENDC + "| " +
current_mp + " |" + bcolors.OKBLUE + mp_bar + bcolors.ENDC + "| ")
答案 0 :(得分:1)
您必须更改字体类型
答案 1 :(得分:-1)
在脚本顶部尝试以下操作:
import sys
reload(sys)
sys.setdefaultencoding('utf8')