กลับไปหน้ารวมไฟล์
liars-dice-assistant-701fe9.md

เจ้านี่คืออุปกรณ์ช่วยตัดสินใจขั้นเทพสำหรับเกมลับเต (Liar’s Dice) ครับน้อง เอาไว้ช่วยให้เราเรียกเบอร์ได้เป๊ะกว่าเดิม

ถ้ายังไม่รู้จักเกมลับเต แนะนำให้ไปดู Pirates of the Caribbean: Dead Man’s Chest ซะ จะได้เข้าใจกฎคร่าวๆ หรือไม่ก็ลองหาอ่านกฎแบบเต็มๆ ดูได้ (แต่เดี๋ยวพี่สรุปให้เอง) หลักการง่ายๆ มันคือเกมส์โกหกครับ แต่ละคนมีลูกเต๋าอยู่ในแก้ว ต้องผลัดกันประกาศว่า "บนโต๊ะมีหน้า X อยู่ Y ลูก" โดยที่เราไม่เห็นของคนอื่น การจำจำนวนลูกเต๋าทั้งโต๊ะและติดตามว่าใครเหลือกี่ลูกคือกุญแจสู่ชัยชนะเลยทีเดียว

โปรเจคนี้ใช้เมทริกซ์คีย์แพดกับจอ LCD มาช่วยให้เราตัดสินใจได้เฉียบขึ้นระหว่างเล่น มันจะถามข้อมูลจากเราคือ: จำนวนลูกเต๋าทั้งหมดบนโต๊ะ (หรือที่เราคาดเดา), จำนวนที่ถูกเรียก (เช่น มีคนประกาศ "เจ็ดลูกหน้า 6" เราก็ใส่ 7), จำนวนลูกเต๋าในแก้วเราเอง, และจำนวนลูกเต๋าในแก้วเร�ี่ตรงกับหน้าที่ถูกเรียก จากนั้นมันจะคำนวณและแสดงเปอร์เซ็นต์สองค่า: ความน่าจะเป็นที่การประกาศนั้นเป็นจริง (หมายความว่ามีลูกเต๋าหน้านั้นอย่างน้อยตามที่เรียก), กับความน่าจะเป็นที่จำนวนลูกเต๋าหน้านั้น *เป๊ะๆ* ตามที่เรียก

ป้อนข้อมูลทั้งหมดผ่านคีย์แพดเลยครับ ผลลัพธ์โชว์ตรงๆ บน LCD จอ LCD ที่ใช้ในบิลด์นี้ไม่มี I2C นะ ดังนั้นการเดินสายอาจจะง่ายกว่าในบางเคส ขึ้นอยู่กับชุดที่เรามี

ปรับแต่ง Random Seed ให้ปัง

สำหรับเกมลูกเต๋า ความสุ่มที่แท้จริงคือหัวใจครับ การใช้ random(1, 7) แบบธรรมดาบน Arduino จะให้ลำดับตัวเลขเดิมเป๊ะทุกครั้งที่เปิดบอร์ด

  • วิธีแก้: ใน setup() ต้องเขียน randomSeed(analogRead(A0)); ลงไป
  • การปล่อยขาแอนะล็อก A0 ว่างไว้เฉยๆ มันจะทำงานเหมือนเสาอากาศ รับคลื่นแม่เหล็กไฟฟ้ารอบตัวที่เปลี่ยนแปลงตลอดเวลาในห้อง มาเป็น seed ที่สุ่มจริงๆ เข้าไปในตัวสร้างเลข ทำให้ทุกเกมไม่ซ้ำกันเลย!

จัดการกับอาร์เรย์ลูกเต๋า

  1. การ "ทอย": เมื่อผู้ใช้กดปุ่มหลัก โค้ดจะเติมค่าลงในอาร์เรย์: int myDice[5] โดยสุ่มเลขใส่ในช่องที่ 0 ถึง 4
  2. การแสดงผล: ถ้าใช้ไลบรารีอย่าง Adafruit_GFX บนจอ OLED เราสามารถวาดสี่เหลี่ยมพร้อมจุดที่จำลองหน้าลูกเต๋าจริงๆ ได้เลย ไม่ใช่แค่พิมพ์เลขออกมา
  3. การปิดบัง: ปุ่มที่สอง (ปุ่ม "แก้ว") สามารถโปรแกรมให้ล้างหน้าจอทั้งหมดได้ เพื่อให้ผู้เล่นซ่อนผลทอยของตัวเองจากคนอื่นได้เวลาจะเริ่มบลัฟฟ์

อุปกรณ์แนะนำ

  • Arduino Nano หรือ Pro Mini: เล็กพอดีกำมือ
  • จอ OLED ขนาด 1.3" หรือ 0.96" แบบ I2C
  • ปุ่มอาร์เคด (2 หรือ 3 ปุ่ม)
  • แหล่งจ่ายไฟแบบกะทัดรัด (เช่น 9V หรือ LiPo)

เป็นแบบฝึกหัดที่เจ๋งมากในการสร้างของเล่นดิจิทัลสแตนด์อโลนที่ทำงานได้โดยไม่ต้องพึ่งคอมพิวเตอร์ภายนอกเลยครับ ความเป็นไปได้กับเมทริกซ์คีย์แพดและ LCD นี่ไม่มีสิ้นสุด ตั้งแต่เครื่องคิดเลขไปจนถึงกลไกล็อค เอาไปดัดแปลงกันต่อได้เต็มที่ สู้งานนะน้อง แล้วก็โชคดีในการบลัฟฟ์!

ข้อมูล Frontmatter ดั้งเดิม

apps:
  - "1x Arduino IDE"
author: "krisa98"
category: "Gadgets, Games & Toys"
components:
  - "1x Matrix Keypad 4x4"
  - "1x 10kOhm potentiometer"
  - "1x Arduino Uno R3"
  - "1x LCD 16x2"
  - "1x Breadboard 100x160"
description: "อุปกรณ์เทพๆ ที่ช่วยคำนวณความน่าจะเป็นแบบตึงๆ ให้เราโกงเกม Liars Dice ได้แบบจัดเต็ม ใช้เซนเซอร์อ่านค่าลูกเต๋า แล้วประมวลผลด้วย Arduino ให้คำแนะนำแบบวัยรุ่นสุดกวน รับรองว่าเล่นเกมนี้ทีไรชนะทุกที!"
difficulty: "Intermediate"
documentationLinks: []
downloadableFiles:
  - "https://app.arduino.cc/sketches/432f24b0-8dd1-4f85-b225-8453164fdbd1?nav=Examples&view-mode=preview"
encryptedPayload: "U2FsdGVkX19kkJpC/iR98K4BVE4mvcjqlAmqGF2t2ZFDyQj5NIIol5QqeyVuzqz3kdqwupODX/9NoZjwWSXlRbSUJkRrNgkQ5yTnyS79ItE="
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/liars-dice-assistant-701fe9_cover.jpg"
lang: "en"
likes: 1
passwordHash: "df72ef039f3a443e357df79761b78339844a52b2d5bb79ceb1e6ac81ecf2816d"
price: 1120
seoDescription: "Enhance your Liars Dice game with this Probability calculating device built using Arduino and Sensors."
tags:
  - "Games"
title: "อุปกรณ์ช่วยทอยลูกเต๋าโกง - งานง่ายแต่หล่อ!"
tools: []
videoLinks: []
views: 1280