from tkinter import*  #นำเข้าทุกคำสั่งจากโมดูล tk inter เพื่อสร้างเกมและงานกราฟิกต้องเป็นบรรทัดแรกเท่านั้น
import random  #ต้องใช้เมื่อมีการเรียกใช้ไลบรารี่เพื่อสุ่มข้อมูล
from tkinter import messagebox #เมื่อต้องการนำเข้าการใช้กล่องข้อความ

#*******************สร้างหน้าต่างโปรแกรม************************
root = Tk()  #เมทอด Tk() ใช้สร้างหน้าต่างโปรแกรมชื่อ root
root.geometry("600x500") #กำหนดขนาดของหน้าต่างโปรแกรม root
root.title("Yingchub Game")#ตั้งชื่อให้หน้าต่างแสดง
root.resizable(0,0) #กำหนดไม่อนุญาตให้ปรับหน้าต่าง


#*************สร้างวิดเจท (Widget)ในหน้าต่าง root****************
lblCom = Label(root,font = "tahoma 25 bold ",fg = "blue",text = "COM") #กำหนดสิ่งต่างๆ ให้ป้ายของ label ผู้เล่น Computer
lblCom.grid(row = 2,column = 0)  #การวาง label ข้อความลงบนหน้าต่าง

lblYou = Label(root,font = "tahoma 25 bold ",fg = "Deep Pink",text = "YOU") #กำหนดสิ่งต่างๆ ให้ป้ายของ label ผู้เล่นคน
lblYou.grid(row = 2,column = 1)  #การวาง label ข้อความลงบนหน้าต่าง

pic1 = Canvas(root) #แสดงผ้าใบไว้ในหน้าต่าง root เพื่อจะไว้วางภาพมือที่เป่ายิงชุบของ COM
pic1.grid(row = 4,column = 0)   #การวางตำแหน่งผังภาพลงบนหน้าต่าง
pic2 = Canvas(root) #แสดงผ้าใบไว้ในหน้าต่าง root เพื่อจะไว้วางภาพมือที่เป่ายิงชุบของ YOU
pic2.grid(row = 4,column = 1)   #การวางตำแหน่งผังภาพลงบนหน้าต่าง

btnHammer = Button(root,font = "tahoma 15 bold ",fg = "green",text = "ค้อน",width = 15,
                   command = lambda:Hammer()) #กำหนดสิ่งต่างๆ ให้ปุ่มของฆ้อน ใช้กดปุ่ม command = lambda:
btnHammer.grid(row = 6,column = 1)   #การวางตำแหน่งปุ่มลงบนหน้าต่าง
btnScissors = Button(root,font = "tahoma 15 bold ",fg = "green",text = "กรรไกร",width = 15,
                   command = lambda:Scissors()) #กำหนดสิ่งต่างๆ ให้ปุ่มของกรรไกร ใช้กดปุ่ม command = lambda:
btnScissors.grid(row = 8,column = 1)   #การวางตำแหน่งปุ่มลงบนหน้าต่าง
btnPaper = Button(root,font = "tahoma 15 bold ",fg = "green",text = "กระดาษ",width = 15,
                   command = lambda:Paper()) #กำหนดสิ่งต่างๆ ให้ปุ่มของกระดาษ ใช้กดปุ่ม command = lambda:
btnPaper.grid(row = 10,column = 1)   #การวางตำแหน่งปุ่มลงบนหน้าต่าง

#**********************สร้างฟังก์ชันต่างๆ*************************
#ฟังก์ชันค่าเริ่มต้น
def begin():  
    p0_img = PhotoImage(file = 'p0.png') # Load รูป p0.png ไว้ใน p0_img
    pic1.config(width = p0_img.width()+5,height = p0_img.height()+5)  # ใส่รูปภาพไว้ในช่องแสดงรูปภาพ pic1 มีขนาดเท่ากับ p0_img เพิ่มความกว้าง-ยาวอีก 5
    pic1.create_image(5,5,anchor = NW,image = p0_img)#วางตำแหน่งค่าแรก แกน x ค่า 2 แกน y และอยู่ชิดมุมบนซ้าย
    pic1.image = p0_img #วางรูปภาพ
    pic2.config(width = p0_img.width()+5,height = p0_img.height()+5)  # ใส่รูปภาพไว้ในช่องแสดงรูปภาพ pic1 มีขนาดเท่ากับ p0_img เพิ่มความกว้าง-ยาวอีก 5
    pic2.create_image(5,5,anchor = NW,image = p0_img)#วางตำแหน่งค่าแรก แกน x ค่า 2 แกน y และอยู่ชิดมุมบนซ้าย
    pic2.image = p0_img #วางรูปภาพ

#ฟังก์ชันฆ้อน
def Hammer():    #รูปภาพในโหมด You ในช่อง pic2
    p1_img = PhotoImage(file = 'p1.png') # Load รูป p1.png ไว้ใน p1_img
    pic2.config(width = p1_img.width()+5,height = p1_img.height()+5)# ใส่รูปภาพไว้ในช่องแสดงรูปภาพ pic1 มีขนาดเท่ากับ p1_img เพิ่มความกว้าง-ยาวอีก 5
    pic2.create_image(5,5,anchor = NW,image = p1_img)#วางตำแหน่งค่าแรก แกน x ค่า 2 แกน y และอยู่ชิดมุมบนซ้าย
    pic2.image = p1_img #วางรูปในช่อง pic2

    #สุ่มรูปภาพในโหมด COM ในช่อง pic1
    r1 = random.randint(1,3) #สุ่มตัวเลขระหว่าง 1 - 3
    com_img = PhotoImage(file = f'p{r1}.png')  #โหลดรูปภาพที่มีชื่อตรงกับเลขที่สุ่ม ถ้าสุ่มได้เลข 1 จะโหลดรูป p1.png ถ้าสุ่มได้เลข 2 จะโหลดรูป p2.png ถ้าสุ่มได้เลข 3 จะโหลดรูป p3.png
    pic1.config(width = com_img.width()+5, height = com_img.height()+5)  #ปรับขนาดช่องแสดงรูปภาพ pic1 ให้มีขนาดมากกว่าขนาดรูป 5 pixels
    pic1.create_image(5,5,anchor = NW, image = com_img) #กำหนดตำแหน่งในการวางรูปในช่อง pic1
    pic1.image = com_img #วางรูปในช่อง pic1
    #ตรวจสอบเงื่อนไข เพื่อหาผลแพ้ชนะ
    if r1 == 1 :    #คอมพิวเตอร์เป็นรูป p1.png คือรูปค้อน     ส่วนเราเป็นรูปค้อน ผลคือเสมอ
        messagebox.showinfo("ผลลัพธ์","เสมอ")
    elif r1 == 2 :  #คอมพิวเตอร์เป็นรูป p2.png คือรูปกรรไกร  ส่วนเราเป็นรูปค้อน ผลคือเราชนะ
        messagebox.showinfo("ผลลัพธ์","คุณชนะ")
    else :          #คอมพิวเตอร์เป็นรูป p3.png คือรูปกระดาษ  ส่วนเราเป็นรูปค้อน ผลคือคอมพิวเตอร์ชนะ
        messagebox.showinfo("ผลลัพธ์","คอมพิวเตอร์ชนะ")
#ฟังก์ชันกรรไกร
def Scissors(): #รูปภาพในโหมด You ในช่อง pic2 
    p2_img = PhotoImage(file = 'p2.png')# Load รูป p2.png ไว้ใน p2_img
    pic2.config(width = p2_img.width()+5,height = p2_img.height()+5)# ใส่รูปภาพไว้ในช่องแสดงรูปภาพ pic1 มีขนาดเท่ากับ p2_img เพิ่มความกว้าง-ยาวอีก 5
    pic2.create_image(5,5,anchor = NW,image = p2_img)#วางตำแหน่งค่าแรก แกน x ค่า 2 แกน y และอยู่ชิดมุมบนซ้าย
    pic2.image = p2_img #วางรูปในช่อง pic2

    #สุ่มรูปภาพในโหมด COM ในช่อง pic1
    r1 = random.randint(1,3) #สุ่มตัวเลขระหว่าง 1 - 3
    com_img = PhotoImage(file = f'p{r1}.png')  #โหลดรูปภาพที่มีชื่อตรงกับเลขที่สุ่ม ถ้าสุ่มได้เลข 1 จะโหลดรูป p1.png ถ้าสุ่มได้เลข 2 จะโหลดรูป p2.png ถ้าสุ่มได้เลข 3 จะโหลดรูป p3.png
    pic1.config(width = com_img.width()+5, height = com_img.height()+5)  #ปรับขนาดช่องแสดงรูปภาพ pic1 ให้มีขนาดมากกว่าขนาดรูป 5 pixels
    pic1.create_image(5,5,anchor = NW, image = com_img) #กำหนดตำแหน่งในการวางรูปในช่อง pic1
    pic1.image = com_img #วางรูปในช่อง pic1
    #ตรวจสอบเงื่อนไข เพื่อหาผลแพ้ชนะ
    if r1 == 1 :    #คอมพิวเตอร์เป็นรูป p1.png คือรูปค้อน     ส่วนเราเป็นรูปกรรไกร ผลคือคอมพิวเตอร์ชนะ
        messagebox.showinfo("ผลลัพธ์","คอมพิวเตอร์ชนะ")
    elif r1 == 2 :  #คอมพิวเตอร์เป็นรูป p2.png คือรูปกรรไกร  ส่วนเราเป็นรูปกรรไกร ผลคือเสมอ
        messagebox.showinfo("ผลลัพธ์","เสมอ")
    else :          #คอมพิวเตอร์เป็นรูป p3.png คือรูปกระดาษ  ส่วนเราเป็นรูปกรรไกร ผลคือเราชนะ
        messagebox.showinfo("ผลลัพธ์","คุณชนะ")

#ฟังก์ชันกระดาษ
def Paper():   #รูปภาพในโหมด You ในช่อง pic2
    p3_img = PhotoImage(file = 'p3.png')# Load รูป p3.png ไว้ใน p3_img
    pic2.config(width = p3_img.width()+5,height = p3_img.height()+5)# ใส่รูปภาพไว้ในช่องแสดงรูปภาพ pic1 มีขนาดเท่ากับ p3_img เพิ่มความกว้าง-ยาวอีก 5
    pic2.create_image(5,5,anchor = NW,image = p3_img)#วางตำแหน่งค่าแรก แกน x ค่า 2 แกน y และอยู่ชิดมุมบนซ้าย
    pic2.image = p3_img #วางรูปในช่อง pic2

    #สุ่มรูปภาพในโหมด COM ในช่อง pic1
    r1 = random.randint(1,3) #สุ่มตัวเลขระหว่าง 1 - 3
    com_img = PhotoImage(file = f'p{r1}.png')  #โหลดรูปภาพที่มีชื่อตรงกับเลขที่สุ่ม ถ้าสุ่มได้เลข 1 จะโหลดรูป p1.png ถ้าสุ่มได้เลข 2 จะโหลดรูป p2.png ถ้าสุ่มได้เลข 3 จะโหลดรูป p3.png
    pic1.config(width = com_img.width()+5, height = com_img.height()+5)  #ปรับขนาดช่องแสดงรูปภาพ pic1 ให้มีขนาดมากกว่าขนาดรูป 5 pixels
    pic1.create_image(5,5,anchor = NW, image = com_img) #กำหนดตำแหน่งในการวางรูปในช่อง pic1
    pic1.image = com_img #วางรูปในช่อง pic1
    #ตรวจสอบเงื่อนไข เพื่อหาผลแพ้ชนะ
    if r1 == 1 :    #คอมพิวเตอร์เป็นรูป p1.png คือรูปค้อน     ส่วนเราเป็นรูปกระดาษ ผลคือเราชนะ
        messagebox.showinfo("ผลลัพธ์","คุณชนะ")
    elif r1 == 2 :  #คอมพิวเตอร์เป็นรูป p2.png คือรูปกรรไกร  ส่วนเราเป็นรูปกระดาษ ผลคือคอมพิวเตอร์ชนะ
        messagebox.showinfo("ผลลัพธ์","คอมพิวเตอร์ชนะ")
    else :          #คอมพิวเตอร์เป็นรูป p3.png คือรูปกระดาษ  ส่วนเราเป็นรูปกระดาษ ผลคือเสมอ
        messagebox.showinfo("ผลลัพธ์","เสมอ")
#ฟังก์ชันกรรไกร
#*******************ให้โปรแกรมทำงานตามฟังก์ชันเริ่มต้น*******************
           
begin()




