帮我优化改进这一段代码import tkinter as tk from tkinter import * import random jf=0 root = tk.Tk() root.title("期末结课作业") root.geometry("400x200+100+200") tk_label = tk.Label(root,text = "这是一个猜拳游戏").pack() tk_label = tk.Label(root,text = "输入1是拳头,2是布,3是剪刀,猜对增加积分,猜错减少积分
时间: 2024-02-17 15:03:45 浏览: 99
好的,这是一个简单的猜拳游戏,以下是一些代码优化和改进的建议:
1. 避免使用“from tkinter import *”,因为这会导入大量的tkinter模块中的函数和变量,可能会导致重名的问题。建议使用“import tkinter as tk”来避免这种情况。
2. 在创建Label时,最好使用grid()布局管理器,因为它可以更好地控制组件的位置和大小。
3. 变量名的命名应该具有描述性,以便更好地理解代码。
4. 将代码分成函数,这样可以使代码更清晰、易读和易维护。
5. 使用try / except来处理用户输入非数字的情况,以避免程序崩溃。
下面是优化后的代码:
```
import tkinter as tk
import random
jf = 0
def guess_num(num):
global jf
computer_num = random.randint(1,3)
if num == computer_num:
jf += 1
result = "猜对了,积分+1"
else:
jf -= 1
result = "猜错了,积分-1"
score_label.config(text = f"当前积分:{jf}")
result_label.config(text = result)
def reset_game():
global jf
jf = 0
score_label.config(text = f"当前积分:{jf}")
result_label.config(text = "游戏已重置")
root = tk.Tk()
root.title("期末结课作业")
root.geometry("400x200+100+200")
title_label = tk.Label(root, text = "这是一个猜拳游戏")
title_label.grid(row = 0, column = 0)
instruction_label = tk.Label(root, text = "输入1是拳头,2是布,3是剪刀,猜对增加积分,猜错减少积分")
instruction_label.grid(row = 1, column = 0)
score_label = tk.Label(root, text = f"当前积分:{jf}")
score_label.grid(row = 2, column = 0)
result_label = tk.Label(root, text = "")
result_label.grid(row = 3, column = 0)
input_entry = tk.Entry(root)
input_entry.grid(row = 4, column = 0)
guess_button = tk.Button(root, text = "猜拳", command = lambda: guess_num(int(input_entry.get())) )
guess_button.grid(row = 5, column = 0)
reset_button = tk.Button(root, text = "重置游戏", command = reset_game)
reset_button.grid(row = 6, column = 0)
root.mainloop()
```
阅读全文