python - 我将如何使用输入框和 if 语句之类的 tkinter 实现猜谜游戏
问题描述
我需要帮助将我创建的猜谜游戏与我的 Tkinter GUI 结合起来。我主要需要关于如何在 Tkinter 中使用 if 语句以及如何改进我的 GUI 代码的帮助,因为我觉得它可以变得更简单。
先感谢您。
Tkinter 图形用户界面
from tkinter import *
#key function
def click():
entered_text=textentry.get()
output.delete(0.0, END)
#main:
window = Tk()
window.title("Guessing Game")
window.configure(background="lightskyblue1")
#BackgroundPhoto:
photo1 = PhotoImage(file="guessinggame.gif")
Label (window, image=photo1, bg="black") .grid(row=0, column=0, sticky=W)
#Label.1
Label (window, text="Enter your guess:", bg="lightskyblue1", fg="black", font="none 12 bold") .grid(row=1, column=0, sticky=W)
#InputBox
textentry = Entry(window, width=20, bg="white")
textentry.grid(row=2, column=0, sticky=W)
#CheckButton
Button(window, text="CHECK", width=6, command=click) .grid(row=3, column=0, sticky=W)
#Label.2
Label (window, text="Your guess was:", bg="lightskyblue1", fg="black", font="none 12 bold") .grid(row=4, column=0, sticky=W)
#OutputBox
output = Text(window, width=5, height=1, wrap=WORD, background="lightskyblue1")
output.grid(row=5, column=0, columnspan=2, stick=W)
#mainloopRunner
window.mainloop()
猜谜游戏
import random
affirmations = ('y', 'yeah', 'yes', 'yep', 'yup', 'sure')
print('I am thinking of a number from 1 to 10. Guess which one.')
number = random.randint(1, 10)
guesses = 1
while True:
guess = int(input('Choose a number between 1 and 10: '))
if guess == number:
print('Wow, you got it after only {} guesses.'.format(guesses))
play_again = input('Want to play again? [Y/N] ')
if play_again.lower() in affirmations:
guesses = 0
number = random.randint(1, 10)
else:
print('Thanks for playing.')
break
elif 10 < guess < 1:
print('Only guesses between 1 and 10, please.')
elif guess < number:
print('Think higher...')
else:
print('Go lower...')
guesses += 1
解决方案
将 while 循环中的代码放在click()
函数中的原始程序中,并进行一些更改。作为click()
一个函数,您需要使变量成为guesses
全局变量。
def click():
global guesses
为了与用户交流,您使用文本区域而不是打印。在输入新文本之前清除文本区域:
output.delete(0.0, END) # Clear ouytout text area
output.insert('1.0', 'A message!') # Display in text area
否则你if
照常使用。
关于 GUI 代码,我看不到任何明显的方法可以使它更简单。
推荐阅读
- java - 当我通过 USB 在我的手机上运行我的 android studio 应用程序时,它给了我这个错误 Unable to load class 'org.apache.commons.io.FileUtils'
- sql-server - 从以前版本的 SQL Server 升级
- javascript - Javascript将鼠标滚轮事件转移到其他元素
- c# - Windows vs. unix path on transfer data in .NET
- c# - 如何使用 FsCheck 检查异步方法抛出?
- c# - 如何在 C# 中显示原始 H264 流
- flutter - 在飞镖中写入字节数组
- jquery - 如何在整个站点和重新加载时存储用户输入(在深色和浅色主题之间切换)
- swift - 什么是正确的 MTLRegion 参数?
- swift - 我如何打开 XIb 文件按钮到 ViewController