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

PySimpleGUI猜数字游戏开发求助:类与GUI实现问题

猜数字游戏实现方案

直接给你一个能运行的面向过程版本(避开类和self,新手更容易理解),包含你要的所有功能:

import PySimpleGUI as sg
import random

def init_game():
    """初始化游戏:生成第一个1-12的随机数,清空结果提示"""
    return random.randint(1, 12), ""

# 设置GUI主题
sg.theme('LightBlue2')

# 初始化游戏状态
current_num, result_text = init_game()

# 构建GUI布局
layout = [
    [sg.Text(f"当前数字: {current_num}", key='-CURRENT_NUM-', font=('Arial', 16))],
    [sg.Radio('大', 'GUESS', key='-BIG-', default=True), sg.Radio('小', 'GUESS', key='-SMALL-')],
    [sg.Text(result_text, key='-RESULT-', font=('Arial', 14), text_color='red')],
    [sg.Button('提交猜测'), sg.Button('重新开始'), sg.Button('退出')]
]

# 创建窗口
window = sg.Window('猜数字游戏', layout)

# 事件循环(处理用户操作的核心)
while True:
    event, values = window.read()
    
    # 退出游戏
    if event == sg.WIN_CLOSED or event == '退出':
        break
    
    # 重新开始游戏
    if event == '重新开始':
        current_num, result_text = init_game()
        window['-CURRENT_NUM-'].update(f"当前数字: {current_num}")
        window['-RESULT-'].update(result_text)
        window['-BIG-'].update(value=True)  # 默认选中"大"选项
        continue
    
    # 处理猜测提交
    if event == '提交猜测':
        # 生成下一个随机数
        next_num = random.randint(1, 12)
        # 获取用户选择的猜测方向
        user_guess_big = values['-BIG-']
        
        # 判断猜测是否正确
        correct = False
        if user_guess_big and next_num > current_num:
            correct = True
        elif not user_guess_big and next_num < current_num:
            correct = True
        
        # 更新结果提示
        result_text = f"下一个数字: {next_num} → {'猜对了!' if correct else '猜错了!'}"
        window['-RESULT-'].update(result_text)
        
        # 更新当前数字,准备下一轮猜测
        current_num = next_num
        window['-CURRENT_NUM-'].update(f"当前数字: {current_num}")

# 关闭窗口
window.close()

关键部分说明

  • 初始化函数:init_game用来重置游戏状态,每次重新开始时调用,避免重复写相同代码
  • GUI元素的key:给每个需要动态更新的元素加key,方便后续用window[key].update()修改内容
  • 事件循环:PySimpleGUI的核心逻辑,所有用户操作(点击按钮、关闭窗口)都在这里处理:
    • 退出:直接结束循环关闭窗口
    • 重新开始:调用初始化函数,把界面上的数字、提示、单选框都重置回初始状态
    • 提交猜测:生成新数字、判断对错、更新结果,同时把当前数字替换成新数字,继续下一轮

运行步骤

  1. 先安装PySimpleGUI:命令行输入 pip install pysimplegui
  2. 把代码保存为.py文件,直接运行即可

这个版本逻辑简单,没有用到类和self,你可以跟着注释一步步理解每部分的作用,也能直接修改测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 18:45:42