🎲 Dice Battle · เกมทอยเต๋าดวลมอนสเตอร์

✍️ เขียนโค้ดเองทุกบรรทัดโดย นักเรียน Nutpoom Sookkasem อายุ 16 ปี 💛 · ดูโปรไฟล์และผลงานทั้งหมด →

← ผลงานทั้งหมด

📖 ผลงานนี้คืออะไร?

Dice Battle คือเกมต่อสู้แบบ RPG ที่รันบนหน้าจอคอนโซล — ผู้เล่นกับมอนสเตอร์มีพลังชีวิตฝ่ายละ 100 แต่ละเทิร์นทั้งคู่จะทอยลูกเต๋า ใครได้แต้มสูงกว่าเป็นฝ่ายโจมตี นักเรียนออกแบบระบบเกมเองทั้งหมด: เต๋าของผู้เล่นมี 10 หน้า ของศัตรูมี 7 หน้า (ให้ผู้เล่นได้เปรียบนิด ๆ อย่างตั้งใจ) มีโอกาสติดคริติคอล 1 ใน 20 มีการ์ดป้องกันใช้ได้ 3 ครั้งที่ลดความเสียหายจาก 20 เหลือ 5 และลูกเล่นเด็ดคือการโยนเหรียญเสี่ยงดวง — ออกหัวได้เลือดเพิ่ม 40 แต่ออกก้อยเลือดหายไปครึ่งหนึ่ง!

จุดที่ครูชอบเป็นพิเศษ: นักเรียนเขียนคอมเมนต์ภาษาไทยอธิบายโค้ดของตัวเองไว้แทบทุกบรรทัด และการชั่งน้ำหนักเกม (risk vs reward ของการโยนเหรียญ) คือแนวคิดเดียวกับที่นักออกแบบเกมตัวจริงใช้กัน

🧠 สิ่งที่นักเรียนได้ใช้จากคอร์ส Python:
ตัวแปร & เลขคณิต (ระบบ HP) random.randint — สุ่มลูกเต๋า/เหรียญ/คริติคอล while loop — วนเกมทีละเทิร์นจนจบ if / elif / else — ตัดสินผลการต่อสู้ boolean flag — สถานะยกการ์ด f-string — แสดงพลังชีวิตแบบเรียลไทม์ input() — โต้ตอบกับผู้เล่น game balance — ออกแบบแต้มต่อเองทั้งหมด

🕹️ ลองเล่นของจริงเลย!

นี่คือโปรแกรมของนักเรียนแปลงมารันบนเว็บแบบเป๊ะ ๆ ทุกกติกา — พิมพ์คำตอบแล้วกด 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
แชร์ทาง LINE
อยากให้ลูกเขียนเกมแบบนี้ได้บ้าง?

คอร์ส Python ของเราสอนสดตัวต่อตัว เด็ก ๆ ได้ทำโปรเจ็คจริงของตัวเองแบบนี้ทุกคนค่ะ