หลังจากที่ได้เรียน Boot camp กับพี่ทอยไปเรียบร้อย ได้รับโจทย์การบ้านจากพี่ทอย 555+ ให้ลองเขียน Programing โดยใช้ภาษา Python เกี่ยวกับการเล่นเป่ายิ้งฉุบ ซึ่งจะคล้ายๆกับตอนที่เราเขียน R-Programing เพียงแต่ใช้ Function และความรู้ที่เรียนมา เขียนออกมาตามความเข้าใจของเรา เดี๋ยวลองมาดูกัน จะพยายามเขียนอธิบายให้ออกมาให้ดีที่สุดค้าบบ
♥♥♥ เริ่มต้นจากการทำความเข้าใจเกี่ยวกับภาษา Python สำหรับผมเนื่องจากก่อนหน้านี้เราเขียนภาษา R ก่อน เลยจะนำเอาพื้นฐานจากที่ได้เรียนมาขยายความให้เข้าใจมากขึ้น
“รู้จักลองอะไรใหม่ๆ ทำให้ได้อะไรเจ๋งๆ กลับมาเสมอ” กล่าวโดย เจฟฟ์ เบโซส
ก่อนจะเริ่มกัน อยากให้ทุกท่านเข้าไปเล่นเกมส์นี้กันก่อนนะครับ
START A GAME
https://colab.research.google.com/drive/1iQH4TAcPy8FIal1LlpI96u6qgedb98ND?usp=sharing
เข้าผ่าน link นี้ แล้ว กด Code มุมบนซ้าย จากนั้นก็ พิมพ์ข้อความนี้นะครับ
pao_ying_chub()

pao_ying_chub()
ขอให้สนุกกับเกมส์นะครับ Enjoy the game ! ☺
. . หลังจากได้ลองเล่นไปแล้ว เดี๋ยวเรามาดูคำอธิบาย Code แต่ละ function กันนะครับ . .
เริ่มจากการ import random เพื่อเตรียมการสุ่มค่าที่เราตั้งค่าไว้
import random
จากนั้นจะทำการเขียน หน้า welcome สำหรับการเล่นเกมส์เป้ายิ้งฉุบ โดยเป็นการเล่นระหว่าง User กับ Bot จึงทำการระบุตัวนับคะแนนลงไปด้วย
def pao_ying_chub():
print("Hello welcome to International fun G-A-M-E")
print("This is PAO YING CHUB!!")
print("Let's Start it!!!")
## ด้านล่างระบุไว้เพื่อนับคะแนน เริ่มต้นจาก 0 ทั้ง User และ Bot
user_score = 0
bot_score = 0
ต่อมาจะเป็นการเริ่มเล่นเกมส์โดยการระบุจำนวนรอบที่เราจะเล่นกัน โดยเริ่มเล่นจากรอบที่ 1 และจะเล่นกันทั้งหมด 10 รอบ เพื่อหาผู้ชนะ (ที่เขียน range 1 , 11 เนื่องจาก Python จะนับค่าก่อนถึงค่าที่กำหนด จึงเป็น รอบที่ 1 – 10)
count = 1
for round in range(1, 11):
print(f"In round: {round}")
ถัดมาคือการสร้างตัวแปรของ ผู้เล่น หรือ User เพื่อให้ผู้เล่นทำการเลือก choice [ค้อน , กรรไกร , กระดาษ] จากที่กำหนดออกเป็นผลลัพธ์ที่ต้องการเลือก ใน 3 ค่านี้เท่านั้น
user_hand = input(print("Please choose your hand : [hammer, paper , scissor]"))
จากนั้นเมื่อผู้เล่นเลือก choice ของตัวเองได้แล้ว ก็จะถึงตาของ Bot ที่จะทำการสุ่มค่า 3 ค่าเช่นเดียวกับของผู้เล่น คือ [ค้อน , กรรไกร , กระดาษ] เพื่อวัดผลลัพธ์ในรอบนั้นๆ
b_hand = ["hammer" , "scissor" , "paper"]
bot_hand = random.choice(b_hand)
print(f"And bot choose!! : {bot_hand}")
ถัดมาเป็นเงื่อนไขการให้คะแนน จากผลลัพธ์ที่ออกมาระหว่าง ผู้เล่น และ Bot นั้นเอง โดยเงื่อนไขตั้งตามผู้เล่น
เงื่อนไขที่ 1 : ถ้าผลลัพธ์ออกมาเป็น Choice เดียวกัน ให้ประกาศว่ารอบนั้นๆ เสมอกัน
“This round is DRAW!!”
เงื่อนไขที่ 2 : ถ้าผลลัพธ์ผู้เล่นออกค้อน Bot ออกกรรไกร หรือ
ถ้าผลลัพธ์ผู้เล่นออกกระดาษ Bot ออกค้อน หรือ
ถ้าผลลัพธ์ผู้เล่นออกกรรไกร Bot ออกกระดาษ
ให้ประกาศว่ารอบนั้นๆผู้เล่นชนะ “This round YOU WIN!! Yeahhh :D” แล้วบวกคะแนนให้ผู้เล่น 1 คะแนน
เงื่อนไขที่ 3 : ถ้าไม่เข้าเงื่อนไขที่ 1 และ 2 ให้ประกาศว่ารอบนั้นๆ Bot ชนะ แล้วบวกคะแนนให้ Bot 1 คะแนน “This round YOU LOSE!! so sad :(“
จากนั้นก็จะดำเนินการเล่นรอบถัดไป เพื่อให้ครบ 10 รอบการเล่น
if user_hand == bot_hand:
print("This round is DRAW!!")
elif (user_hand == "hammer" and bot_hand == "scissor") or \
(user_hand == "paper" and bot_hand == "hammer") or \
(user_hand == "scissor" and bot_hand == "paper"):
print("This round YOU WIN!! Yeahhh :D")
user_score += 1
else:
print("This round YOU LOSE!! so sad :(" )
bot_score += 1
ถัดมาจะเป็นส่วนรองสุดท้าย คือการประกาศคะแนนรวม เมื่อเล่นครบ 10 รอบ
print("Now !! End the game , This is a score: ")
print(f"Your score {user_score} ")
print(f"Bot Score {bot_score} ")
ส่วนสุดท้ายคือการประกาศผลผู้ชนะ โดยการเอาคะแนนมารวมกัน
ถ้าผู้เล่นคะแนนรวมมากกว่า ให้ประกาศว่าผู้เล่นเป็นผู้ชนะในเกมส์นี้
ถ้า Bot คะแนนรวมมากกว่า ให้ประกาศว่า Bot เป็นผู้ชนะในเกมส์นี้
ถ้าคะแนนเท่ากัน เป็นเสมอกันในเกมส์นี้
if user_score > bot_score:
print("You a Winner!")
elif user_score < bot_score:
print("Bot a Winner!")
else:
print("This game is DRAW!")
จบไปเป็นที่เรียบร้อยแล้ว หวังว่าผู้อ่านทุกท่านจะพอเข้าใจใน Concept ของแต่ละ Function ในแต่ละส่วนนะครับ
สามารถติชมได้ จะนำไปพัฒนา Skill ของตัวเองต่อไปเรื่อยๆครับ ขอบพระคุณครับ ♥