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

美国州名游戏:输入州名后地图图片消失问题求助

解决美国州名游戏地图消失问题

问题根源在于同一个海龟对象既用来显示地图,又用来写州名:当你调用turtle.hideturtle()时,显示地图的海龟被隐藏,导致地图随之消失。

修改方案

创建两个独立的海龟实例,各司其职:

  • 一个专门负责显示地图,全程保持可见
  • 另一个专门负责在地图上书写州名,仅处理文字输出逻辑

修改后的完整代码

import pandas
from turtle import Turtle, Screen

# 创建两个独立的海龟实例
map_turtle = Turtle()  # 负责显示地图
writer_turtle = Turtle()  # 负责书写州名
screen = Screen()

# 加载并显示地图
screen.title("U.S. States Game")
image = "blank_states_img.gif"
screen.addshape(image)
map_turtle.shape(image)

# 初始化写文字的海龟:隐藏光标、抬笔(避免移动时留下轨迹)
writer_turtle.hideturtle()
writer_turtle.penup()

# 处理州名数据
data = pandas.read_csv("50_states.csv")
all_names = data.state.to_list()
name_list = []

# 游戏主循环
while len(name_list) < 50:
    guess_name = screen.textinput(title=f"{len(name_list)}/50 States Correct",
                                  prompt="Input the name of a state ").title()
    if guess_name == "Exit":
        # 用列表推导式简化缺失州名的筛选
        missing_states = [state for state in all_names if state not in name_list]
        pandas.DataFrame(missing_states).to_csv("missing_states.csv")
        break

    if guess_name in all_names:
        name_list.append(guess_name)
        row_data = data[data.state == guess_name]
        writer_turtle.goto(int(row_data.x), int(row_data.y))
        writer_turtle.write(guess_name)

关键修改说明

  1. 拆分原海龟对象为map_turtle和writer_turtle,避免地图显示与文字输出互相干扰
  2. 提前初始化写文字海龟的状态(隐藏、抬笔),无需每次猜对州名都重复设置
  3. 保留原有所有游戏逻辑,同时确保地图全程保持显示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 08:19:51