窗口猜数字

import tkinter as tk
import tkinter.messagebox
import random

# 设置主窗口
win = tk.Tk()
win.title('Welcome to 猜数字小游戏')
win.geometry('300x400')
# 输入框要输入的内容
tk.Label(win, text='请输入你要猜的数:').place(x=100, y=170)
# 设置输入框
var_step = tk.StringVar()
var_step.set('')
entry_step = tk.Entry(win, textvariable=var_step)
entry_step.place(x=100, y=200)

i = 5   # 猜测次数为5次
num2 = 0    # 全局变量,用来存放系统生成的随机数
def dispose():
    conjecture_num = var_step.get()  # 获取用户输入的数
    global i    # 声明变量 i 使其可以被修改  
    try:
        conjecture_num = int(conjecture_num)       # 把用户猜的数变成整数赋给conjecture_num
        if i % 5 == 0:  # 每猜5次,重置系统的随机数
            num1 = int(random.randint(0, 100))    #生成随机数
            global num2     # 声明全局变量 num2 使其可被修改
            num2 = num1
            # 判断用户猜的数是否正确
        if conjecture_num == int(num2):
            tk.messagebox.showinfo(title='完成', message="恭喜你猜对了!")
            i = 5  # 猜对的话,则次数变为5,准备重置随机数
        elif conjecture_num < int(num2):
            i -= 1
            tk.messagebox.showerror(title='Error', message='数字太小了,您还剩{}次机会'.format(i % 5))
        elif conjecture_num > (num2):
            i -= 1
            tk.messagebox.showerror(title='Error', message='数字太大了,您还剩{}次机会'.format(i % 5))
    except BaseException as e:  # 若出现异常,弹出错误窗口
        tk.messagebox.showerror(title='错误', message='请输入整数')
# 设置按钮
btn_dealt = tk.Button(win, text='确认', command=dispose)  # 点下按钮,调用函数dispose
btn_dealt.place(x=100, y=290)
win.mainloop()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的Java猜数字游戏窗口的实现: ```java import java.awt.*; import java.awt.event.*; import javax.swing.*; public class GuessNumberGame extends JFrame implements ActionListener { private static final long serialVersionUID = 1L; private int num = -1; private int count = 0; private JLabel label1, label2; private JTextField textField; private JButton button; public GuessNumberGame() { super("Guess Number Game"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(300, 150); setLocationRelativeTo(null); label1 = new JLabel("Guess a number between 0 and 100:"); label2 = new JLabel(""); textField = new JTextField(10); button = new JButton("Guess"); button.addActionListener(this); JPanel panel = new JPanel(); panel.setLayout(new GridLayout(3, 1)); panel.add(label1); panel.add(textField); panel.add(button); panel.add(label2); setContentPane(panel); setVisible(true); } public void actionPerformed(ActionEvent e) { if (num == -1) { num = (int) (Math.random() * 100); } try { int guess = Integer.parseInt(textField.getText()); count++; if (guess == num) { label2.setText("Congratulations! You guessed the number in " + count + " tries."); button.setEnabled(false); } else if (guess < num) { label2.setText("Too low. Try again."); } else { label2.setText("Too high. Try again."); } } catch (NumberFormatException ex) { label2.setText("Invalid input. Please enter an integer between 0 and 100."); } } } ``` 这个程序实现了一个简单的猜数字游戏窗口,用户需要在文本框中输入一个0到100之间的整数,然后点击“Guess”按钮进行猜测。程序会根据用户的猜测给出相应的提示,直到用户猜中为止。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值