fork download
  1. แน่นอนค่ะ\! นี่คือโค้ดเกมแข่งม้าในภาษา Python ที่ชื่อว่า **"การแข่งขันม้าพยัคฆ์ (Tiger Horse Racing)"** ค่ะ
  2.  
  3. เกมนี้จะเป็นเกมที่เล่นบน **Console (หน้าต่าง Command Prompt/Terminal)** นะคะ ไม่ใช่เกมที่สามารถฝังใน Google Site ได้โดยตรงเหมือน HTML/JavaScript ค่ะ
  4.  
  5. **คุณสมบัติของเกม:**
  6.  
  7. * **ม้าแข่ง 5 ตัว:** แต่ละตัวมีชื่อและอัตราต่อรอง (Odds) ที่แตกต่างกัน
  8. * **ระบบเครดิต:** คุณมีเครดิตเริ่มต้น 1000 💰 เพื่อใช้ในการเดิมพัน
  9. * **การวางเดิมพัน:** สามารถเลือกม้าที่จะเดิมพันและจำนวนเครดิตได้
  10. * **การแข่งขัน:** ม้าจะวิ่งไปข้างหน้าทีละก้าว และจะแสดงภาพสนามแข่งพร้อมตำแหน่งม้า
  11. * **ผลลัพธ์:** เมื่อม้าตัวใดตัวหนึ่งเข้าเส้นชัย จะประกาศผลผู้ชนะและคำนวณเงินรางวัล (หากคุณเดิมพันถูก)
  12. * **ภาษาไทย:** ข้อความทั้งหมดในเกมจะเป็นภาษาไทย
  13.  
  14. **วิธีเล่นเกมนี้:**
  15.  
  16. 1. **คัดลอกโค้ด:** คัดลอกโค้ด Python ด้านล่างทั้งหมด
  17. 2. **บันทึกเป็นไฟล์ .py:** เปิดโปรแกรมแก้ไขข้อความ (เช่น Notepad, VS Code) วางโค้ดลงไป แล้วบันทึกไฟล์เป็น `horse_racing.py` (หรือชื่ออะไรก็ได้ที่ลงท้ายด้วย `.py`)
  18. 3. **เปิด Command Prompt/Terminal:**
  19. * **Windows:** กด `Win + R` พิมพ์ `cmd` แล้วกด Enter
  20. * **macOS/Linux:** ค้นหา `Terminal` หรือ `Konsole`
  21. 4. **ไปยังไดเรกทอรีที่บันทึกไฟล์:** ใช้คำสั่ง `cd` เพื่อไปยังโฟลเดอร์ที่คุณบันทึกไฟล์ไว้ (เช่น `cd Documents\MyGames`)
  22. 5. **รันเกม:** พิมพ์ `python horse_racing.py` แล้วกด Enter
  23.  
  24. คุณจะเห็นเกมรันในหน้าต่าง Console/Terminal ของคุณค่ะ
  25.  
  26. ```python
  27. import random
  28. import time
  29. import os
  30.  
  31. class Horse:
  32. """
  33. คลาสสำหรับแสดงข้อมูลของม้าแต่ละตัวในการแข่งขัน
  34. """
  35. def __init__(self, name, emoji, odds):
  36. self.name = name # ชื่อของม้า
  37. self.emoji = emoji # อีโมจิแทนตัวม้า (ใช้สำหรับแสดงผลบนหน้าจอ)
  38. self.odds = odds # อัตราต่อรองของม้า (ตัวคูณเงินรางวัล)
  39. self.position = 0 # ตำแหน่งปัจจุบันของม้าบนสนามแข่ง
  40.  
  41. def move(self):
  42. """
  43. คำนวณการเคลื่อนที่ของม้าในแต่ละรอบ
  44. ม้าที่มีอัตราต่อรองต่ำ (มีโอกาสชนะสูงกว่า) จะมีแนวโน้มก้าวได้ไกลกว่า
  45. """
  46. # ปรับความเร็วสูงสุดตามอัตราต่อรอง: ยิ่ง odds ต่ำ (ม้าเก่ง) ยิ่ง max_step สูง
  47. # เพิ่มค่าคงที่ 3 เพื่อให้ม้ามีการเคลื่อนไหวเสมอ
  48. max_step = int(10 / self.odds) + 3
  49. step = random.randint(1, max_step) # สุ่มก้าวเดิน
  50. self.position += step
  51.  
  52. class RaceGame:
  53. """
  54. คลาสหลักสำหรับจัดการตรรกะของเกมแข่งม้าทั้งหมด
  55. """
  56. def __init__(self, initial_credit=2000):
  57. self.credit = initial_credit # เครดิตเริ่มต้นของผู้เล่น
  58. self.horses = [
  59. Horse("พยัคฆ์ทมิฬ", "🐎", 2.5), # ม้า 1
  60. Horse("ม้าเร็วแสง", "🏇", 3.0), # ม้า 2
  61. Horse("สายฟ้าผ่า", "🐴", 4.0), # ม้า 3
  62. Horse("ลมกรด", "🦄", 5.5), # ม้า 4
  63. Horse("อัศวินรัตติกาล", "🎠", 7.0) # ม้า 5
  64. ]
  65. self.track_length = 60 # ความยาวของสนามแข่ง (ในหน่วยตัวอักษร)
  66. self.bet_amount = 0 # จำนวนเครดิตที่เดิมพันในรอบปัจจุบัน
  67. self.bet_horse_id = -1 # ID ของม้าที่เดิมพัน (-1 หากยังไม่ได้เดิมพัน)
  68. self.is_race_active = False # สถานะการแข่ง (True หากกำลังแข่งอยู่)
  69.  
  70. def clear_screen(self):
  71. """
  72. ล้างหน้าจอ Console
  73. """
  74. os.system('cls' if os.name == 'nt' else 'clear')
  75.  
  76. def display_status(self):
  77. """
  78. แสดงสถานะปัจจุบันของเกม (เครดิต, อัตราต่อรอง)
  79. """
  80. self.clear_screen()
  81. print("+" + "="*40 + "+")
  82. print(f"| {'เกมแข่งม้าพยัคฆ์นำโชค':^38} |")
  83. print("+" + "="*40 + "+")
  84. print(f" เครดิตของคุณ: {self.credit} 💰")
  85. print("-" * 42)
  86. print(" อัตราต่อรองม้า:")
  87. for i, horse in enumerate(self.horses):
  88. print(f" [{i+1}] {horse.emoji} {horse.name}: {horse.odds:.1f}x")
  89. print("-" * 42)
  90.  
  91. def place_bet(self):
  92. """
  93. ให้ผู้เล่นวางเดิมพัน
  94. """
  95. if self.is_race_active:
  96. print("ไม่สามารถวางเดิมพันขณะการแข่งขันกำลังดำเนินอยู่ได้")
  97. return False
  98.  
  99. while True:
  100. self.display_status()
  101. print("\n")
  102. print("เลือกม้าที่จะเดิมพัน:")
  103. for i, horse in enumerate(self.horses):
  104. print(f" [{i+1}] {horse.name}")
  105. print(" [0] ยกเลิก")
  106.  
  107. try:
  108. choice = int(input("ป้อนหมายเลขม้าที่คุณต้องการเดิมพัน: "))
  109. if choice == 0:
  110. self.bet_horse_id = -1
  111. self.bet_amount = 0
  112. print("ยกเลิกการเดิมพันแล้ว.")
  113. return False
  114. if 1 <= choice <= len(self.horses):
  115. self.bet_horse_id = choice - 1
  116. break
  117. else:
  118. print("ตัวเลือกไม่ถูกต้อง กรุณาลองใหม่")
  119. except ValueError:
  120. print("ป้อนตัวเลขเท่านั้น กรุณาลองใหม่")
  121.  
  122. while True:
  123. try:
  124. amount = int(input(f"ป้อนจำนวนเครดิตที่ต้องการเดิมพัน (มี {self.credit} 💰): "))
  125. if 0 < amount <= self.credit:
  126. self.bet_amount = amount
  127. # หักเครดิตทันทีที่วางเดิมพัน
  128. self.credit -= self.bet_amount
  129. print(f"คุณเดิมพัน {self.bet_amount} เครดิตกับ {self.horses[self.bet_horse_id].name}!")
  130. return True
  131. else:
  132. print("จำนวนเครดิตไม่ถูกต้องหรือไม่เพียงพอ กรุณาลองใหม่")
  133. except ValueError:
  134. print("ป้อนตัวเลขเท่านั้น กรุณาลองใหม่")
  135.  
  136. def draw_track(self):
  137. """
  138. วาดสนามแข่งและตำแหน่งของม้าบนหน้าจอ Console
  139. """
  140. self.clear_screen()
  141. print("+" + "="* (self.track_length + 10) + "+")
  142. print(f"| {'การแข่งขันม้าพยัคฆ์นำโชค':^{self.track_length + 8}} |")
  143. print("+" + "="* (self.track_length + 10) + "+")
  144. print(f" เครดิต: {self.credit} 💰")
  145. # แสดงข้อมูลเดิมพันปัจจุบัน
  146. bet_info = f"เดิมพัน: {self.bet_amount} กับ {self.horses[self.bet_horse_id].name}" if self.bet_horse_id != -1 else "ยังไม่ได้วางเดิมพัน"
  147. print(f" {bet_info}")
  148. print("-" * (self.track_length + 12))
  149.  
  150. for i, horse in enumerate(self.horses):
  151. track_segment = ['_'] * self.track_length
  152. # ตรวจสอบให้แน่ใจว่าม้าไม่ออกนอกสนาม (visual)
  153. horse_pos_on_track = min(int(horse.position), self.track_length - 1)
  154. track_segment[horse_pos_on_track] = horse.emoji
  155. track_line = "".join(track_segment)
  156. print(f"[{i+1}] {track_line} | เส้นชัย")
  157. print("-" * (self.track_length + 12))
  158.  
  159.  
  160. def run_race(self):
  161. """
  162. ดำเนินการแข่งขันม้าจนกว่าจะมีผู้ชนะ
  163. """
  164. if self.bet_amount == 0 or self.bet_horse_id == -1:
  165. print("กรุณาวางเดิมพันก่อนเริ่มการแข่งขัน.")
  166. return
  167.  
  168. self.is_race_active = True
  169. for horse in self.horses:
  170. horse.position = 0 # รีเซ็ตตำแหน่งม้าทุกตัวไปที่จุดเริ่มต้น
  171.  
  172. print("กำลังเตรียมการแข่งขัน...")
  173.  
  174. winner_id = -1
  175. while winner_id == -1:
  176. self.draw_track() # วาดสนามแข่งในแต่ละเฟรม
  177. for horse in self.horses:
  178. horse.move()
  179. if horse.position >= self.track_length:
  180. winner_id = horse.id
  181. break # พบผู้ชนะแล้ว หยุดการเคลื่อนที่
  182.  
  183. time.sleep(0.15) # หน่วงเวลาเพื่อให้เห็นภาพการเคลื่อนไหว (150ms)
  184.  
  185. self.draw_track() # วาดสนามแข่งเป็นครั้งสุดท้ายเพื่อแสดงผลลัพธ์
  186. winning_horse = self.horses[winner_id]
  187. print(f"\n🎉 ม้า {winning_horse.name} ชนะการแข่งขัน! 🎉")
  188.  
  189. if self.bet_horse_id == winner_id:
  190. winnings = self.bet_amount * winning_horse.odds
  191. self.credit += winnings # เพิ่มเงินรางวัลให้กับเครดิต
  192. print(f"ยินดีด้วย! คุณชนะ {winnings:.1f} เครดิต!")
  193. else:
  194. print(f"เสียใจด้วย คุณแพ้การเดิมพัน {self.bet_amount} เครดิต.")
  195.  
  196. self.bet_amount = 0 # รีเซ็ตการเดิมพันสำหรับรอบถัดไป
  197. self.bet_horse_id = -1
  198. self.is_race_active = False
  199. input("\nกด Enter เพื่อเล่นต่อ...")
  200.  
  201. def play(self):
  202. """
  203. เริ่มเกมและจัดการเมนูหลัก
  204. """
  205. while True:
  206. self.display_status()
  207. print("\n")
  208. print("1. วางเดิมพัน")
  209. print("2. เริ่มการแข่งขัน (ต้องวางเดิมพันก่อน)")
  210. print("3. ออกจากเกม")
  211.  
  212. choice = input("ป้อนตัวเลือกของคุณ: ")
  213.  
  214. if choice == '1':
  215. self.place_bet()
  216. elif choice == '2':
  217. # ตรวจสอบว่ามีการวางเดิมพันก่อนเริ่มแข่ง
  218. if self.bet_amount > 0 and self.bet_horse_id != -1:
  219. self.run_race()
  220. else:
  221. print("กรุณาวางเดิมพันก่อนเริ่มการแข่งขัน.")
  222. elif choice == '3':
  223. print("ขอบคุณที่เล่น! แล้วพบกันใหม่!")
  224. break
  225. else:
  226. print("ตัวเลือกไม่ถูกต้อง กรุณาลองใหม่.")
  227.  
  228. # เริ่มเกมเมื่อรันสคริปต์โดยตรง
  229. if __name__ == "__main__":
  230. game = RaceGame()
  231. game.play()
  232. ```
  233. /* การแสดงผลของการแปลงเลขฐาน 10 เป็นเลขฐาน 2*/
  234. /* j = i - 1 และให้ j ลดค่าลงทีละ 1 ... ก็คืออ่านข้อมูลถอยหลังกลับเท่านั้นเองครับ */
  235. /* เพราะตัวแปรแบบ Array ในภาษา C มันเก็บข้อมูลจากซ้ายไปขวา */
  236. /* ทำให้ LSB มันไปอยู่ทางซ้าย ส่วน MSB มันไปอยู่ทางขวา */
  237. for(j = i - 1; j >= 0; j--)
  238. printf("%d", bit[j]);
  239.  
  240. printf("\n");
  241. return 0;
  242.  
  243. }
Success #stdin #stdout 0.03s 25676KB
stdin
Standard input is empty
stdout
แน่นอนค่ะ\! นี่คือโค้ดเกมแข่งม้าในภาษา Python ที่ชื่อว่า **"การแข่งขันม้าพยัคฆ์ (Tiger Horse Racing)"** ค่ะ

เกมนี้จะเป็นเกมที่เล่นบน **Console (หน้าต่าง Command Prompt/Terminal)** นะคะ ไม่ใช่เกมที่สามารถฝังใน Google Site ได้โดยตรงเหมือน HTML/JavaScript ค่ะ

**คุณสมบัติของเกม:**

  * **ม้าแข่ง 5 ตัว:** แต่ละตัวมีชื่อและอัตราต่อรอง (Odds) ที่แตกต่างกัน
  * **ระบบเครดิต:** คุณมีเครดิตเริ่มต้น 1000 💰 เพื่อใช้ในการเดิมพัน
  * **การวางเดิมพัน:** สามารถเลือกม้าที่จะเดิมพันและจำนวนเครดิตได้
  * **การแข่งขัน:** ม้าจะวิ่งไปข้างหน้าทีละก้าว และจะแสดงภาพสนามแข่งพร้อมตำแหน่งม้า
  * **ผลลัพธ์:** เมื่อม้าตัวใดตัวหนึ่งเข้าเส้นชัย จะประกาศผลผู้ชนะและคำนวณเงินรางวัล (หากคุณเดิมพันถูก)
  * **ภาษาไทย:** ข้อความทั้งหมดในเกมจะเป็นภาษาไทย

**วิธีเล่นเกมนี้:**

1.  **คัดลอกโค้ด:** คัดลอกโค้ด Python ด้านล่างทั้งหมด
2.  **บันทึกเป็นไฟล์ .py:** เปิดโปรแกรมแก้ไขข้อความ (เช่น Notepad, VS Code) วางโค้ดลงไป แล้วบันทึกไฟล์เป็น `horse_racing.py` (หรือชื่ออะไรก็ได้ที่ลงท้ายด้วย `.py`)
3.  **เปิด Command Prompt/Terminal:**
      * **Windows:** กด `Win + R` พิมพ์ `cmd` แล้วกด Enter
      * **macOS/Linux:** ค้นหา `Terminal` หรือ `Konsole`
4.  **ไปยังไดเรกทอรีที่บันทึกไฟล์:** ใช้คำสั่ง `cd` เพื่อไปยังโฟลเดอร์ที่คุณบันทึกไฟล์ไว้ (เช่น `cd Documents\MyGames`)
5.  **รันเกม:** พิมพ์ `python horse_racing.py` แล้วกด Enter

คุณจะเห็นเกมรันในหน้าต่าง Console/Terminal ของคุณค่ะ

```python
import random
import time
import os

class Horse:
    """
    คลาสสำหรับแสดงข้อมูลของม้าแต่ละตัวในการแข่งขัน
    """
    def __init__(self, name, emoji, odds):
        self.name = name    # ชื่อของม้า
        self.emoji = emoji  # อีโมจิแทนตัวม้า (ใช้สำหรับแสดงผลบนหน้าจอ)
        self.odds = odds    # อัตราต่อรองของม้า (ตัวคูณเงินรางวัล)
        self.position = 0   # ตำแหน่งปัจจุบันของม้าบนสนามแข่ง

    def move(self):
        """
        คำนวณการเคลื่อนที่ของม้าในแต่ละรอบ
        ม้าที่มีอัตราต่อรองต่ำ (มีโอกาสชนะสูงกว่า) จะมีแนวโน้มก้าวได้ไกลกว่า
        """
        # ปรับความเร็วสูงสุดตามอัตราต่อรอง: ยิ่ง odds ต่ำ (ม้าเก่ง) ยิ่ง max_step สูง
        # เพิ่มค่าคงที่ 3 เพื่อให้ม้ามีการเคลื่อนไหวเสมอ
        max_step = int(10 / self.odds) + 3
        step = random.randint(1, max_step) # สุ่มก้าวเดิน
        self.position += step

class RaceGame:
    """
    คลาสหลักสำหรับจัดการตรรกะของเกมแข่งม้าทั้งหมด
    """
    def __init__(self, initial_credit=2000):
        self.credit = initial_credit # เครดิตเริ่มต้นของผู้เล่น
        self.horses = [
            Horse("พยัคฆ์ทมิฬ", "🐎", 2.5), # ม้า 1
            Horse("ม้าเร็วแสง", "🏇", 3.0), # ม้า 2
            Horse("สายฟ้าผ่า", "🐴", 4.0), # ม้า 3
            Horse("ลมกรด", "🦄", 5.5), # ม้า 4
            Horse("อัศวินรัตติกาล", "🎠", 7.0)  # ม้า 5
        ]
        self.track_length = 60      # ความยาวของสนามแข่ง (ในหน่วยตัวอักษร)
        self.bet_amount = 0         # จำนวนเครดิตที่เดิมพันในรอบปัจจุบัน
        self.bet_horse_id = -1      # ID ของม้าที่เดิมพัน (-1 หากยังไม่ได้เดิมพัน)
        self.is_race_active = False # สถานะการแข่ง (True หากกำลังแข่งอยู่)

    def clear_screen(self):
        """
        ล้างหน้าจอ Console
        """
        os.system('cls' if os.name == 'nt' else 'clear')

    def display_status(self):
        """
        แสดงสถานะปัจจุบันของเกม (เครดิต, อัตราต่อรอง)
        """
        self.clear_screen()
        print("+" + "="*40 + "+")
        print(f"| {'เกมแข่งม้าพยัคฆ์นำโชค':^38} |")
        print("+" + "="*40 + "+")
        print(f"  เครดิตของคุณ: {self.credit} 💰")
        print("-" * 42)
        print("  อัตราต่อรองม้า:")
        for i, horse in enumerate(self.horses):
            print(f"    [{i+1}] {horse.emoji} {horse.name}: {horse.odds:.1f}x")
        print("-" * 42)

    def place_bet(self):
        """
        ให้ผู้เล่นวางเดิมพัน
        """
        if self.is_race_active:
            print("ไม่สามารถวางเดิมพันขณะการแข่งขันกำลังดำเนินอยู่ได้")
            time.sleep(1)
            return False

        while True:
            self.display_status()
            print("\n")
            print("เลือกม้าที่จะเดิมพัน:")
            for i, horse in enumerate(self.horses):
                print(f"  [{i+1}] {horse.name}")
            print("  [0] ยกเลิก")

            try:
                choice = int(input("ป้อนหมายเลขม้าที่คุณต้องการเดิมพัน: "))
                if choice == 0:
                    self.bet_horse_id = -1
                    self.bet_amount = 0
                    print("ยกเลิกการเดิมพันแล้ว.")
                    time.sleep(1)
                    return False
                if 1 <= choice <= len(self.horses):
                    self.bet_horse_id = choice - 1
                    break
                else:
                    print("ตัวเลือกไม่ถูกต้อง กรุณาลองใหม่")
                    time.sleep(1)
            except ValueError:
                print("ป้อนตัวเลขเท่านั้น กรุณาลองใหม่")
                time.sleep(1)

        while True:
            try:
                amount = int(input(f"ป้อนจำนวนเครดิตที่ต้องการเดิมพัน (มี {self.credit} 💰): "))
                if 0 < amount <= self.credit:
                    self.bet_amount = amount
                    # หักเครดิตทันทีที่วางเดิมพัน
                    self.credit -= self.bet_amount
                    print(f"คุณเดิมพัน {self.bet_amount} เครดิตกับ {self.horses[self.bet_horse_id].name}!")
                    time.sleep(1)
                    return True
                else:
                    print("จำนวนเครดิตไม่ถูกต้องหรือไม่เพียงพอ กรุณาลองใหม่")
                    time.sleep(1)
            except ValueError:
                print("ป้อนตัวเลขเท่านั้น กรุณาลองใหม่")
                time.sleep(1)

    def draw_track(self):
        """
        วาดสนามแข่งและตำแหน่งของม้าบนหน้าจอ Console
        """
        self.clear_screen()
        print("+" + "="* (self.track_length + 10) + "+")
        print(f"| {'การแข่งขันม้าพยัคฆ์นำโชค':^{self.track_length + 8}} |")
        print("+" + "="* (self.track_length + 10) + "+")
        print(f"  เครดิต: {self.credit} 💰")
        # แสดงข้อมูลเดิมพันปัจจุบัน
        bet_info = f"เดิมพัน: {self.bet_amount} กับ {self.horses[self.bet_horse_id].name}" if self.bet_horse_id != -1 else "ยังไม่ได้วางเดิมพัน"
        print(f"  {bet_info}")
        print("-" * (self.track_length + 12))

        for i, horse in enumerate(self.horses):
            track_segment = ['_'] * self.track_length
            # ตรวจสอบให้แน่ใจว่าม้าไม่ออกนอกสนาม (visual)
            horse_pos_on_track = min(int(horse.position), self.track_length - 1)
            track_segment[horse_pos_on_track] = horse.emoji
            track_line = "".join(track_segment)
            print(f"[{i+1}] {track_line} | เส้นชัย")
        print("-" * (self.track_length + 12))


    def run_race(self):
        """
        ดำเนินการแข่งขันม้าจนกว่าจะมีผู้ชนะ
        """
        if self.bet_amount == 0 or self.bet_horse_id == -1:
            print("กรุณาวางเดิมพันก่อนเริ่มการแข่งขัน.")
            time.sleep(1)
            return

        self.is_race_active = True
        for horse in self.horses:
            horse.position = 0 # รีเซ็ตตำแหน่งม้าทุกตัวไปที่จุดเริ่มต้น

        print("กำลังเตรียมการแข่งขัน...")
        time.sleep(2)

        winner_id = -1
        while winner_id == -1:
            self.draw_track() # วาดสนามแข่งในแต่ละเฟรม
            for horse in self.horses:
                horse.move()
                if horse.position >= self.track_length:
                    winner_id = horse.id
                    break # พบผู้ชนะแล้ว หยุดการเคลื่อนที่

            time.sleep(0.15) # หน่วงเวลาเพื่อให้เห็นภาพการเคลื่อนไหว (150ms)

        self.draw_track() # วาดสนามแข่งเป็นครั้งสุดท้ายเพื่อแสดงผลลัพธ์
        winning_horse = self.horses[winner_id]
        print(f"\n🎉 ม้า {winning_horse.name} ชนะการแข่งขัน! 🎉")

        if self.bet_horse_id == winner_id:
            winnings = self.bet_amount * winning_horse.odds
            self.credit += winnings # เพิ่มเงินรางวัลให้กับเครดิต
            print(f"ยินดีด้วย! คุณชนะ {winnings:.1f} เครดิต!")
        else:
            print(f"เสียใจด้วย คุณแพ้การเดิมพัน {self.bet_amount} เครดิต.")

        self.bet_amount = 0 # รีเซ็ตการเดิมพันสำหรับรอบถัดไป
        self.bet_horse_id = -1
        self.is_race_active = False
        input("\nกด Enter เพื่อเล่นต่อ...")

    def play(self):
        """
        เริ่มเกมและจัดการเมนูหลัก
        """
        while True:
            self.display_status()
            print("\n")
            print("1. วางเดิมพัน")
            print("2. เริ่มการแข่งขัน (ต้องวางเดิมพันก่อน)")
            print("3. ออกจากเกม")

            choice = input("ป้อนตัวเลือกของคุณ: ")

            if choice == '1':
                self.place_bet()
            elif choice == '2':
                # ตรวจสอบว่ามีการวางเดิมพันก่อนเริ่มแข่ง
                if self.bet_amount > 0 and self.bet_horse_id != -1:
                    self.run_race()
                else:
                    print("กรุณาวางเดิมพันก่อนเริ่มการแข่งขัน.")
                    time.sleep(1)
            elif choice == '3':
                print("ขอบคุณที่เล่น! แล้วพบกันใหม่!")
                break
            else:
                print("ตัวเลือกไม่ถูกต้อง กรุณาลองใหม่.")
                time.sleep(1)

# เริ่มเกมเมื่อรันสคริปต์โดยตรง
if __name__ == "__main__":
    game = RaceGame()
    game.play()
```
    /* การแสดงผลของการแปลงเลขฐาน 10 เป็นเลขฐาน 2*/
    /* j = i - 1 และให้ j ลดค่าลงทีละ 1 ... ก็คืออ่านข้อมูลถอยหลังกลับเท่านั้นเองครับ */
    /* เพราะตัวแปรแบบ Array ในภาษา C มันเก็บข้อมูลจากซ้ายไปขวา */
    /* ทำให้ LSB มันไปอยู่ทางซ้าย ส่วน MSB มันไปอยู่ทางขวา */
    for(j = i - 1; j >= 0; j--)
        printf("%d", bit[j]);

printf("\n");
return 0;

}