วันเสาร์ที่ 30 มกราคม พ.ศ. 2559

construct 2 : เกมจับคู่ภาพ ตอนที่ 1

เกมจับคู่ภาพ
เกมจับคู่ภาพ เป็นอีกเกมหนึ่งที่จะทำให้ผู้เล่นเกมได้ฝึกความจำ หรือจะประยุกต์ไปใช้กับการสร้างสื่อการสอนที่เป็นลักษณะของความสัมพันธ์ของสิ่งของหรือภาพ ตัวอักษร ที่มีความสัมพันธ์กัน

ตัวอย่างไฟล์เกม memory.capx

การออกแบบการสร้างเกมจะแบ่งออกเป็น 3 layout คือ startgame, playgame และ endgame


การทำงานของ Layout startgame
การทำงานของ layout นี้ จะเป็นหน้าแรกของเกม ที่จะรอให้ผู้เล่นเกมคลิกปุ่ม เพื่อเริ่มเล่นเกม การทำงานของ layout จะมีพื้นหลัง และปุ่มสำหรับการเริ่มเล่นเกม ดังรูป


กำหนดการทำงานของปุ่ม start game ใน Event sheet 1 ดังนี้



การทำงานของ Layout playgame
การทำงานหลักๆ ของเกมจะอยู่ที่การทำงานของ layout นี้ ผมจะขอนำเสนอเป็นขั้นตอน ดังนี้
ขั้นที่ 1 การเตรียมความพร้อมเริ่มต้นของเกม
1.1 สร้าง array สำหรับเก็บข้อมูลภาพ โดย insert array เข้ามาในเกม ตั้งชื่อเป็น Image กำหนดให้เป็นแบบ 1 มิติ ขนาด width = 18



1.2 กำหนดค่าหมายเลขของภาพที่คู่กันลงใน array Image
เพิ่มคำสั่งลงใน Event sheet 2 โดยเพิ่มเงื่อนไข System -> On start of layout และเพิ่มเหตุการณ์ย่อย เพื่อเพิ่มค่าใน array ดังนี้
- เพิ่มตัวแปร local ชื่อ CardsSet เป็นแบบ Number กำหนดค่าเริ่มต้นเป็น 0


- วนซ้ำเพื่อกำหนดค่าให้กับ array Image ให้มีค่าหมายเลขภาพที่คู่กัน คำสั่งกำหนดค่า คือ กำหนดค่าที่ตำแหน่ง array ที่เท่ากับ CardsSet ให้เท่ากับค่า floor(CardsSet/2) แล้วเพิ่มค่า CardsSet ขึ้นทีละ 1 จะได้คำสั่ง ดังนี้


เมื่อทดลองสั่งเกมให้ทำงาน ค่าใน array Image ควรเป็น ดังนี้


- ขั้นต่อไป ทำการสับเปลี่ยนหมายเลขของภาพ ให้อยู่ในตำแหน่งที่แตกต่างกัน โดยเพิ่มคำสั่งย่อย ดังนี้
กำหนดค่าตัวแปรแบบ local ชื่อ temp1 มีค่าเท่ากับ 0, temp2 มีค่าเท่ากับ 0, randomPos มีค่าเท่ากับ 0 และ currentPos มีค่าเท่ากับ 0
ทำการวนซ้ำค่าตัวแปร Shuffle ตั้งแต่ 0 ถึง 16 ด้วยการทำงาน ดังนี้
1. กำหนดให้ temp1 มีค่าเท่ากับหมายเลขภาพในตำแหน่ง array Image ที่ 0
2. สุ่มค่าตำแหน่งภาพที่จะสับเปลี่ยน อยู่ระหว่าง ตำแหน่งภาพปัจจุบัน +1 ถึง 17 มาเก็บไว้ที่ตัวแปร randomPos
3. กำหนดให้ temp2 มีค่าเท่ากับหมายเลขภาพในตำแหน่ง array Image ที่สุ่มได้
4. สลับค่าภาพตำแหน่ง array Image ที่ 0 กับตำแหน่งที่สุ่มได้
5. เพิ่มค่า currentPos ทีละ 1


เมื่อทดลองสั่งเกมให้ทำงาน และมีการสับเปลี่ยนค่าใน array Image ควรเป็น ดังนี้




ไม่มีความคิดเห็น:

แสดงความคิดเห็น