Discrete Mathematics Modeling of Minecraft Redstone

ในปัจจุบันคงจะยากถ้าคนเราจะไม่รู้จักคำว่า “เกม” ผู้คนส่วนใหญ่มักเล่นในช่วงเวลาว่างเพื่อผ่อนคลาย หรือผู้คนบางกลุ่มอาจจะถึงขั้นทำเป็นอาชีพ เช่น game caster, steamer เป็นต้น

แต่เกมที่ผมจะพูดถึงต่อไปนี้ เป็นเกมที่หลายคนเคยเล่นเพื่อความสนุกกับเพื่อน ๆ หรือกับใครก็แล้วแต่ ผมจะมาพูดถึง Modeling of Minecraft Redstone หรือก็คือ item ที่ชื่อว่า redstone ภายในเกม minecraft โดยจะพูดถึงว่า เจ้า readstone มีความเกี่ยวข้องอย่างไรกับ Discrete Mathematics

What is Discrete Mathematics?

หลาย ๆ คนน่าจะสงสัยกัน ว่าอะไรคือ Discrete Mathematics หรือชื่อภาษาไทย วิยุตคณิต(?) มันคืออะไร ต่างจากคณิตศาสตร์ที่เรารู้จักไหม เกี่ยวกับ calculus ที่น่าปวดหัวหรือเปล่า? หรืออาจจะเกี่ยวกับทฤษฎีสัมพันธภาพ E=mc^2 หรือไม่?

ก่อนที่จะไปไกลมากกว่านี้ เรามาดูนิยามตาม wikipedia กันก่อนดีกว่า

วิยุตคณิต ภินทนคณิตศาสตร์ หรือ คณิตศาสตร์ไม่ต่อเนื่อง (อังกฤษ: discrete mathematics) หรือบางครั้งเรียกว่า คณิตศาสตร์จำกัด (finite mathematics) เป็นการศึกษาโครงสร้างทางคณิตศาสตร์ซึ่งมีลักษณะเป็นค่าเฉพาะเจาะจง และไม่ต่อเนื่อง ซึ่งไม่ต้องใช้แนวคิดเกี่ยวกับความต่อเนื่องวัตถุที่ศึกษาส่วนมากในสาขานี้มักเป็นเซตนับได้ เช่น เซตของจำนวนเต็ม

วิยุตคณิต – วิกิพีเดีย

อธิบายให้ง่ายกว่าเดิม คือแนวคิด หรือตรรกกะ ที่เป็นคณิตศาสตร์นั่นเอง ยกตัวอย่างเช่น หลักการทำงานของไฟคืออะไร (ย้ำว่าหลักการทำงานนะ ไม่ใช่สูตรเคมีหรือใด ๆ ทั้งสิ้น) คือมีทั้งความร้อน เชื้อเพลิง และออกซิเจน ถ้าขาดอันใดอันหนึ่งจะไม่เกิดไฟ หลักการทำงานของมันคือ discrete mathematics นั่นเอง ที่บอกว่า ต้องมี 3 สิ่งนี้นะ ถึงจะเกิดไฟ เมื่อเข้าใจใน discrete mathematics กันแล้วก็เริ่มเข้าสู่เรื่องของ redstone ของเรากันเลย

Redstone Logistics

สำหรับคนที่เคยเล่นเกม minecraft นั่นย่อมรู้กันดีว่า เจ้าผงสิแดง ๆ หรือ redstone เจ้าปัญหานี้ มันคือวงจรไฟฟ้าดี ๆ นี่เอง และทุก ๆ วงจรไฟฟ้าย่อมมี logistic กันทั้งนั้น

  • Input/output Gate

io gate

สัญญาณเข้าออกโดยไม่มีการเปลี่ยนแปลง

  • NOT Gate

not gate

ต้องใส่ข้อมูลที่จะปิดเพื่อรับสัญญาณ

  • AND Gate

and gate

ต้องใช้อินพุตทั้งสองตัวพร้อมกันเพื่อให้สัญญาณสามารถผ่านได้

  • NAND Gate

nand gate

ต้องการให้อินพุตหนึ่งหรือทั้งสองเครื่องเปิดอยู่เพื่อให้สามารถรับสัญญาณได้

  • OR Gate

or gate

ต้องใช้อินพุตทั้งสองหรือทั้งสองแบบเพื่อให้สามารถรับสัญญาณได้

เรามาเริ่มทำวงจรง่าย ๆ กันดีกว่า

โดยวงจรที่เราจะทำนี้ คือประตู piston 2×2 แบบที่กลมกลืนไปกับผนัง

รูปตัวอย่างประตูที่เสร็จแล้ว
กดปุ่มก็จะเนียนแบบนี้แหละ

ก่อนจะเริ่มทำมาดู tool ที่เราจะใช้กันมี 2 อย่างคือ

1. T-flip flop

    การเปลี่ยนสัญญาณจาก pulse เป็น static

T-flip flop

2. piston BUD (Block Update Detector)

   สามารถทำให้ส่งไฟแค่ด้านบนแล้ว piston ทำงานทั้ง 2 อัน

piston bud (block update detector)

ขั้นตอนการทำคือ

1. วาง sticky piston 4×4

2. วาง sticky piston เพิ่ม

3. วาง block ที่ต้องการที่จะทำประตู

4. ขุดร่อง redstone เพื่อเชื่อมกับ button

5. ทำ T-flip flop เพื่อเปลี่ยน signal เป็นแบบon/off

6. ต่อ redstone เข้ากับวงจรประตู โดยตั้ง repeater เป็น 2 tick

7. ขุดร่อง redstone เพื่อลากวงจรไปอีกด้านโดยระหว่างทางใส่ repeater เป็น 2 tick เช่นกัน

8. กลับมาที่ด้านเดิมแล้วต่อ redstoneขึ้นด้านบน

9. ต่อ redstone ในลักษณะนี้เพื่อให้ piston ตรงกลางทำงาน

10. ประตู 2×2 เสร็จสิ้น  

ทั้งนี้สามารถดูเพิ่มเติมได้ที่ clip vdo หรือ report ด้านล่าง