irpg Community
[Source Code] สร้างเกม XO หรือ Tic-Tac-Toe | ไม่มี AI (★ ระดับง่าย) - Printable Version

+- irpg Community (https://irpg.in.th)
+-- Forum: Stone Jar Museum & Showroom (https://irpg.in.th/forum-15.html)
+--- Forum: Completed Project (https://irpg.in.th/forum-19.html)
+--- Thread: [Source Code] สร้างเกม XO หรือ Tic-Tac-Toe | ไม่มี AI (★ ระดับง่าย) (/thread-3389.html)



[Source Code] สร้างเกม XO หรือ Tic-Tac-Toe | ไม่มี AI (★ ระดับง่าย) - Mikichan - 06-15-2019

ติดตามเราได้ที่ Facebook ชื่อเพจ Planila Game Developer


ตั้งกระทู้ในหมวด Completed Project เพราะจุดประสงค์หลักคือการแจกเกมพร้อม source code ส่วนการสอนอธิบายนั่นเป็นแค่สิ่งที่เพิ่มเติมมา (ถึงแม้จะยาวก็เถอะ Derp)

นักสร้างเกมมือใหม่หลายคนศึกษาวิธีสร้างเกมมากมาย อ่านมาหลายตำราหลายทฤษฎี แต่กลับพบว่าหลายคนยังสร้างเกมด้วยตนเองไม่ได้สักที ถ้าคิดว่าแค่อ่านตำราให้มากเพียงอย่างเดียวแล้วจะสร้างเกมเป็น ผลลัพธ์ก็ออกมาให้เห็นแล้วว่าไม่จริง การสร้างเกมรวมทั้งการเขียนโปรแกรมมีฐานเป็นสองเสาหลักได้แก่การใช้งาน (ความรู้ด้านภาษาคอมพิวเตอร์, ความรู้ด้านการใช้โปรแกรม, ทฤษฎีต่าง ๆ ฯลฯ) และอัลกอริทึม ถ้าไม่สามารถแปลงความคิดในหัวให้เป็นอัลกอริทึมได้ก็ไม่สามารถสร้างเกมได้อย่างที่ต้องการ ผู้เขียนแนะนำให้นักสร้างเกมมือใหม่ฝึกเรื่องการออกแบบอัลกอริทึมให้คล่อง สำหรับบทความในชุดนี้ไม่ได้เขียนมาเพื่อสอนพื้นฐานหรือฝึกอัลกอริทึมของผู้อ่าน จุดประสงค์ของบทความชุดนี้คือการอธิบายอัลกอริทึมจาก source code จริงของเกมต่าง ๆ ผู้อ่าน

[Image: 09.png]

ไฟล์ TicTacToe.zip (ลิงค์ดาวน์โหลดอยู่ท้ายบทความ) ประกอบด้วย source code 3 ชุดได้แก่
  • Java
  • Visual Basic (VB)
  • RPG Maker VX Ace (RMVXA)
Source code ทั้งสามชุดมีอัลกอริทึมเหมือนกัน ต่างกันเพียงความสามารถของแต่ละภาษาหรือโปรแกรม ผู้อ่านสามารถเลือก source code ใดก็ได้



ภาพรวมอัลกอริทึม
[Image: 00.png]

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

สำหรับอัลกอริทึมคร่าว ๆ นี้จะใส่เพียงแค่สิ่งที่จำเป็นจริง ๆ ในการทำงานของเกม ไม่ลงลึกถึงการเขียนโปรแกรม จะเห็นว่ามีบอกแค่ให้ตรวจสอบ "ชนะแล้ว" และ "เสมอแล้ว" ไม่ได้บอกว่าการชนะหรือการเสมอนั้นเป็นอย่างไร ส่วนตัวแปร player ที่ใส่มาในอัลกอริทึมคร่าว ๆ นี้เป็นสิ่งที่ขาดไม่ได้เพราะเป็นตัวแปรที่เก็บค่าว่าตอนนี้เป็นตาของฝ่าย X หรือเป็นตาของฝ่าย O

ข้างล่างนี้จะเป็นอัลกอริทึมแบบละเอียด ซึ่งนำอัลกอริทึมคร่าว ๆ ข้างบนมาออกแบบให้ละเอียดขึ้น และนำไปใช้งานจริงได้



อธิบายอัลกอริทึมพร้อมตัวอย่าง

1. ออกแบบส่วนแสดงผลที่เป็นกราฟฟิก (Graphic User Interface: GUI) ในตัวอย่างนี้ RMVXA ออกแบบให้แสดงภาพตั้งต้นซึ่งเป็นภาพว่างสีส้มจำนวน 3 x 3 ภาพในแนวตั้งและแนวนอน และแสดงภาพสีน้ำเงินที่โปร่งแสงบางส่วนเพื่อใช้เป็นเคอร์เซอร์ (cursor) ส่วน Java และ VB ออกแบบเป็นปุ่มกด (button) จำนวน 3 x 3 ปุ่มในแนวตั้งและแนวนอน สำหรับภาษา Java ต้องใช้คลาสเพิ่มเติมในการแสดงหน้าต่างแบบ GUI ในตัวอย่างนี้เลือกใช้ JavaFX ในการสร้าง GUI

[Image: 01.png]


การเขียนโปรแกรมบางภาษา เช่น Java, C ต้องใช้คลาสพิเศษในการสร้าง GUI ซึ่งอาจยากสำหรับนักสร้างเกมมือใหม่ ถ้าไม่ต้องการออกแบบเกมแบบ GUI สามารถออกแบบเป็น command line ดังรูปข้างล่างแทนได้ แม้ว่าจะไม่สวยงามแต่ก็เขียนโปรแกรมได้ง่ายกว่า และเหมาะสมสำหรับการฝึกอัลกอริทึมสำหรับนักสร้างเกมมือใหม่ เพราะไม่ต้องเสียเวลาศึกษาและออกแบบ GUI

[Image: 02.png]

......

นี่เพิ่งแค่ 40% ของบทความนี้เท่านั้น บทความฉบับเต็มมีเยอะกว่านี้อีก!


เนื่องจากติดปัญหาเรื่องนโยบายการเผยแพร่บทความ ทำให้เราไม่สามารถเผยแพร่บทความเต็มและ source code ลงในเว็บนี้ได้ อ่านฉบับเต็มได้ที่บทความต้นฉบับ (ไม่มีค่าใช้จ่าย)

บทความต้นฉบับ https://planila.blogspot.com/2019/06/source-code-xo-tic-tac-toe-ai.html

[Image: %25E0%25B8%259A%25E0%25B8%2597%25E0%25B8...9%2588.png]


RE: [Source Code] สร้างเกม XO หรือ Tic-Tac-Toe | ไม่มี AI (★ ระดับง่าย) - dreamknight - 06-16-2019

:o

สวดยอดดดไปเลยย


RE: [Source Code] สร้างเกม XO หรือ Tic-Tac-Toe | ไม่มี AI (★ ระดับง่าย) - Keizz - 06-16-2019

ขอบคุณที่แบ่งปันคับ