os.system('cls') 随机 "jamming" cmd 控制台屏幕

os.system('cls') randomly "jamming" cmd console screen

这是当您 运行 它虽然 python shell:

时发生的情况的图片

所以基本上在 50 到 100 多个回合后我的游戏就会崩溃。看起来 os.system() 在清除屏幕时没有正常关闭。使用 python shell 我可以轻松地手动关闭 cmd 页面并继续游戏而没有任何问题,但是当你 运行 将游戏作为 exe 文件或通过控制台那么这不是一个选项,因此会导致系统崩溃。

我已经尝试在 os.system() 明确说明之前延迟并使用 try/except 但它无法解决问题。

def clear_screen():
    playerMap[y][x] = "@"
    time.sleep(.1)
    os.system('cls' if os.name == 'nt' else 'clear')
    displayMap(playerMap)

例如,如果您单击 W 进行移动并最终到达“.”的位置。然后 clear_screen 将激活。

    if movement == "W":
        y = y-1
        position = mapChoice[y][x]
        playerMap[y][x] = "@"

    if position == ".":
        clear_screen()
        intro1=random.choice(intro)
        print (intro1)
        print("which direction will you go ?")

每次移动都会激活清屏功能,但每移动 100 次,os.system() 功能就会无缘无故地“卡住”。

通过将 os.system('cls') 替换为 print("\033c", end="") 来解决问题。在感到无聊之前转了 500 多次。我不认为 os.system("cls") 被设计用于在每一个回合、每一次攻击、每一个被激活的动作中重复使用。