สำหรับการพัฒนาแอปพลิเคชัน GUI โมดูล tkinter เป็นที่นิยมและใช้งานง่าย สามารถพัฒนาเกม GUI ได้อย่างรวดเร็ว
ที่นี่เราจะพัฒนาเกมทายสี (Color Game) ในเกมนี้ ผู้เล่นต้องพิมพ์ชื่อสีของคำที่ปรากฏบนหน้าจอ (ไม่ใช่คำนั้นเอง) คะแนนจะเพิ่มขึ้นทีละ 1 ระยะเวลาเล่นเกมคือ 30 วินาที สีที่ใช้ในเกมมี 10 สี ได้แก่ แดง น้ำเงิน เขียว โรส ดำ เหลือง ส้ม ขาว ม่วง และน้ำตาล อินเทอร์เฟซจะแสดงชื่อสีต่างๆ ในสีที่ต่างกัน ผู้เล่นต้องระบุสีที่ถูกต้องและพิมพ์ชื่อสีให้ถูกต้องเพื่อชนะเกม
โค้ดตัวอย่างสมบูรณ์
import tkinter
import random
# รายการสี
my_colours = ['Red','Blue','Green','Pink','Black','Yellow','Orange','White','Purple','Brown']
my_score = 0
my_timeleft = 30
def my_startGame(event):
if my_timeleft == 30:
# เริ่มนับถอยหลัง
my_countdown()
my_nextColour()
def my_nextColour():
global my_score
global my_timeleft
# ถ้าเกมกำลังเล่นอยู่
if my_timeleft > 0:
e.focus_set()
# ตรวจสอบว่าคำตอบถูกต้องหรือไม่ (เปรียบเทียบกับสีที่ 2 ในรายการ)
if e.get().lower() == my_colours[1].lower():
my_score += 1
# ล้างกล่องป้อนข้อความ
e.delete(0, tkinter.END)
random.shuffle(my_colours)
# อัปเดตป้ายข้อความ: fg = สีของข้อความ, text = คำที่แสดง
label.config(fg=str(my_colours[1]), text=str(my_colours[0]))
# อัปเดตคะแนน
my_scoreLabel.config(text="Score: " + str(my_score))
# ฟังก์ชันนับถอยหลัง
def my_countdown():
global my_timeleft
if my_timeleft > 0:
my_timeleft -= 1
timeLabel.config(text="Time left: " + str(my_timeleft))
# เรียกฟังก์ชันนี้อีกครั้งหลังจาก 1 วินาที
timeLabel.after(1000, my_countdown)
# โค้ดหลัก
root = tkinter.Tk()
root.title("COLORGAME")
root.geometry("375x200")
my_instructions = tkinter.Label(root, text="Type in the color\nof the words, and not the word text!", font=('Helvetica', 12))
my_instructions.pack()
my_scoreLabel = tkinter.Label(root, text="Press enter to start", font=('Helvetica', 12))
my_scoreLabel.pack()
my_timeLabel = tkinter.Label(root, text="Time left: " + str(my_timeleft), font=('Helvetica', 12))
my_timeLabel.pack()
label = tkinter.Label(root, font=('Helvetica', 60))
label.pack()
e = tkinter.Entry(root)
root.bind('', my_startGame)
e.pack()
e.focus_set()
# เริ่ม GUI
root.mainloop()
ผลลัพธ์

วิธีเล่น: กด Enter เพื่อเริ่มเกม -> พิมพ์ชื่อสีของข้อความที่แสดง (ไม่ใช่คำที่เขียน) -> กด Enter เพื่อยืนยัน -> ทำซ้ำจนหมดเวลา