美国州名游戏:输入州名后地图图片消失问题求助
解决美国州名游戏地图消失问题
问题根源在于同一个海龟对象既用来显示地图,又用来写州名:当你调用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)
关键修改说明
- 拆分原海龟对象为
map_turtle和writer_turtle,避免地图显示与文字输出互相干扰 - 提前初始化写文字海龟的状态(隐藏、抬笔),无需每次猜对州名都重复设置
- 保留原有所有游戏逻辑,同时确保地图全程保持显示
内容的提问来源于stack exchange,提问作者Ryan Ren
相关产品推荐
相关产品推荐

