🎲 Dice Battle · เกมทอยเต๋าดวลมอนสเตอร์
✍️ เขียนโค้ดเองทุกบรรทัดโดย นักเรียน Nutpoom Sookkasem อายุ 16 ปี 💛 · ดูโปรไฟล์และผลงานทั้งหมด →
📖 ผลงานนี้คืออะไร?
Dice Battle คือเกมต่อสู้แบบ RPG ที่รันบนหน้าจอคอนโซล — ผู้เล่นกับมอนสเตอร์มีพลังชีวิตฝ่ายละ 100 แต่ละเทิร์นทั้งคู่จะทอยลูกเต๋า ใครได้แต้มสูงกว่าเป็นฝ่ายโจมตี นักเรียนออกแบบระบบเกมเองทั้งหมด: เต๋าของผู้เล่นมี 10 หน้า ของศัตรูมี 7 หน้า (ให้ผู้เล่นได้เปรียบนิด ๆ อย่างตั้งใจ) มีโอกาสติดคริติคอล 1 ใน 20 มีการ์ดป้องกันใช้ได้ 3 ครั้งที่ลดความเสียหายจาก 20 เหลือ 5 และลูกเล่นเด็ดคือการโยนเหรียญเสี่ยงดวง — ออกหัวได้เลือดเพิ่ม 40 แต่ออกก้อยเลือดหายไปครึ่งหนึ่ง!
จุดที่ครูชอบเป็นพิเศษ: นักเรียนเขียนคอมเมนต์ภาษาไทยอธิบายโค้ดของตัวเองไว้แทบทุกบรรทัด และการชั่งน้ำหนักเกม (risk vs reward ของการโยนเหรียญ) คือแนวคิดเดียวกับที่นักออกแบบเกมตัวจริงใช้กัน
🕹️ ลองเล่นของจริงเลย!
นี่คือโปรแกรมของนักเรียนแปลงมารันบนเว็บแบบเป๊ะ ๆ ทุกกติกา — พิมพ์คำตอบแล้วกด Enter เหมือนรันใน Python จริง
👨💻 โค้ด Python ต้นฉบับ (พร้อมคอมเมนต์ที่เจ้าของเขียนเอง)
import random
print("this is 'dice battle' the one who rolls higher can attack it's that simple")#อธิบายวิธีการเล่น
a = input("so wanna start playing now? ")#ถามว่าพร้อมเล่นหรือยัง
if a == "yes":
php = 100
ehp = 100
gl = 3
guard = False
while php != 0:#ถ้าค่า php ไม่เท่ากับ 0
if ehp <= 0:#ตรวจสอบว่าค่า ehp ไม่เท่ากับ 0
print("You;ve kill the enemy congrat")
break
print(f"The enemy got {ehp}hp. You got {php}.")#บอกค่า ehp และค่า php ให้กับผู้เล่นรู้
g = input(f"Do you want to put on guard for this turn?(guard left {gl}): ")#ถามว่าอยากจะเอา guard ขึ้นหรือไม่
cf = input("wanna do a coint flip real quick head if it land on head but ill take away half of your health if it and on tail: ")#ถามว่าอยากจะเอาโยนเหรียนหรือไม่
if g == "yes" and gl != 0:#ตรวจสอบว่าผู้เล่นตอบตกลงในการเอา guard ขึ้นหรือไม่
guard = True
else:
print("You did'nt put up a guard.")
if cf == "yes":#ตรวจสอบว่าผู้เล่นตอบตกลงในการโยนเหรียนหรือไม่
coin = random.randint(1, 2)#สุ่มเหรียนหัวก้อย
if coin == 1:#ออกหัว
print("It've landed on head.")
php = php + 40
if coin == 2:#ออกก้อย
print("It've landed on tail.")
php = php/2
pr = random.randint(1, 10)#สุ่มค่า pr
er = random.randint(1, 7)#สุ่มค่า er
print(f"You've rolled {pr}. The enemy rolled {er}.")#บอกผู้เล่นว่าค่า pr และค่า er ได้เท่าไหร่
if pr == er:#ตรวจสอบว่าค่า pr และค่า er เท่ากันหรือไม่
pr = random.randint(1, 10)
er = random.randint(1, 7)
print(f"You've rolled {pr}. The enemy rolled {er}.")
elif pr > er:#ตรวจสอบว่าค่า pr มากกว่าค่า er หรือไม่
pc = random.randint(1, 20)
print("Your crit chance: 1 in a 20")
if pc == 20:
print("You've landed a crit attack on the enemy dealing 30 dmg.")
ehp = ehp - 30
else:
print("You've attack the enemy dealing 15 dmg")
ehp = ehp - 15
elif pr < er:#ตรวจสอบว่าค่า pr น้อยกว่าค่า er หรือไม่
if guard == True:
print("The enemy attack you but you've put up a guard so the damage is reduce to 5.")
php = php - 5
gl = gl - 1
guard = False
else:
print("The enemy attack you dealing 20 dmg")
php = php - 20
if php <= 0:# ตรวจสอบว่าค่า ehp ไม่เท่ากับ 0
print("You've died")
break
คอร์ส Python ของเราสอนสดตัวต่อตัว เด็ก ๆ ได้ทำโปรเจ็คจริงของตัวเองแบบนี้ทุกคนค่ะ