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

自定义roguelike游戏的帧打印功能无法正常运行是什么原因?

代码问题排查与修复方案

你遇到的帧不更新问题确实是循环逻辑错误导致的,核心问题有3个:

  • 循环内重复重置坐标:x = 0、y = 0写在了循环体最开头,每一轮循环都会把上一轮修改后的坐标值覆盖,哪怕你按d把x改成了1,下一轮循环又会被重置为0,所以画面永远停留在初始帧。
  • 缩进语法错误:lv1函数定义后,下属的while循环及后续代码没有缩进,Python会直接报错无法运行,需要把while及后续所有代码缩进一层,放在lv1函数作用域内。
  • 输入逻辑位置错误:原代码把input输入逻辑放在了x==0的判断分支内,只要x不等于0,就再也不会触发输入接收,程序会陷入死循环卡住。

修复后参考代码

import os
i = 0
def lv1():
    global i
    # 坐标初始化放在循环外面,不要每次循环都重置
    x = 0
    y = 0
    while i == 0:
        # 清屏替换大量换行,自动适配Windows/ macOS/ Linux系统
        os.system('cls' if os.name == 'nt' else 'clear')
        if x == 0 and y == 0:
            print("@ - - - - - - - - - -")
            print("- - - - - - - - - - -")
            print("- - - - - - - - - - -")
            print("- - - - - - - - - - []")
            print("- - - - - - - - - - -")
            print("- - - - - - - - - - -")
            print("- - - - - - - - - - -")
            print("- - - - - - - - - - -")
        elif x == 1 and y == 0:
            print("- @ - - - - - - - - -")
            print("- - - - - - - - - - -")
            print("- - - - - - - - - - -")
            print("- - - - - - - - - - []")
            print("- - - - - - - - - - -")
            print("- - - - - - - - - - -")
            print("- - - - - - - - - - -")
            print("- - - - - - - - - - -")
        # 输入逻辑放到渲染逻辑外面,每一轮循环都接收输入
        move = input("")
        if move == "d":
            x += 1
            # 增加边界判断,避免x超出地图范围
            if x > 10:
                x = 10
        elif move == "a":
            x -=1
            if x <0:
                x =0
        # 增加q键退出逻辑
        elif move == "q":
            i = 1

# 调用函数启动游戏
lv1()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 12:15:08