การเขียนโปรแกรม ช่วยให้เรียนรู้ชีวิต
เคยเรียนเขียนโปรแกรมมานิดๆ หน่อยๆ ตอนปริญญาตรี เป็น Visual Basic ออกแนวเป็นเนื้อหาแถมจากวิชาคอมพิวเตอร์ โดยปกติเป็นคนชอบเล่นเกมส์ ก็เลยอยากลองทำเกมส์ดูบ้าง ที่คิดได้แบบง่ายๆ ก็คือ เกมเขาวงกต โดยใช้ Visual Basic ใน Excel คล้ายหนังเรื่อง Maze Runner มีตัวโศกา (แมงมุม) เป็นศัตรูเราที่อยู่ในเขาวงกต ขั้นตอนของโปรแกรมก็คือ 1. ให้โปรแกรม Random สร้างผนัง (Border) ภายในเขาวงกต 2. ให้โปรแกรมค้นหาเส้นทางที่จะไปถึงจุดหมาย
3. กรณีที่ผนังมันปิดกั้นเส้นทางหมด ต้องให้คนลบผนัง (Border) แบบ Manual เสร็จแล้วค้นหาเส้นทางต่อไปเรื่อยๆ จนถึงจุดหมาย 4. กดปุ่มเริ่มเล่นได้เลย
กว่าจะสร้างได้ ก็เปลี่ยนรูปแบบการคิด (Algorithm) ไปหลายรอบเหมือนกัน โดยเฉพาะการเดินวนหาเส้นทางในเขาวงกตแบบอัตโนมัติ ซึ่งมี 2 ส่วน 1. ขั้นตอนค้นหาเส้นทางหลังสร้างผนังเขาวงกต 2. เส้นทางการเดินของตัวโศกา เป้าหมายคือต้องทำให้มันเดินกินพื้นที่เขาวงกตให้มากที่สุด ไม่ให้มันติด เดินวนอยู่ในช่องหลืบ
ตอนแรกผมให้โปรแกรมค้นหาเส้นทางแบบ Random ทั้ง 4 ทิศทุกครั้งที่เดิน แต่ก็รู้สึกว่า Code มันออกจะเทอะทะไป ดูไม่สวยงาม เลยนึกถึง Algorithm ของเกมส์ Pacman นั่นคือ ให้ตัวโศกาเดินตรงไปเรื่อยๆ เมื่อเจอผนังค่อยเลี้ยวไปทางอื่น แน่นอนละครับว่า Code มันเขียนน้อยลง และดูเหมือนว่า เส้นทางการเดินน่าจะกินพื้นที่เขาวงกตได้มากขี้นด้วย เพราะมันเน้นเดินทางตรงแบบยาวๆ เลย ถ้าใช้วิธีเก่าแบบของผม มันอาจเดินวนกลับที่เดิม เพราะมัน Random ทุกขั้นตอน
ณ จังหวะนั้นรู้สึกเสียความมั่นใจไปเลยครับ ออกแนว ทำไมตัวเองถึงได้โง่อย่างนี้ คิดเยอะ ทำเยอะกว่า แต่ไม่มีประสิทธิภาพ
ผมเอาแนวคิดของ Pacman ไปเขียนเส้นทางเดินของโศกา เขียนเสร็จ ก็เขียนโปรแกรมค้นหาเส้นทางแรกเริ่มต่อ ตรงจุดนี้ ผมลองเปรียบเทียบดู กลายเป็นว่า วิธีเก่าของผมกลับได้ผลดีกว่าวิธีของ Pacman อาจเป็นเพราะว่าเขาวงกตของผมมันมีซอกหลืบมาก การ Random ทุก Step ที่เดินคงได้ผลดีกว่า
เรื่องนี้สอนให้รู้ว่า... ความคิดหน่ะ มันจะถูกหรือผิด ขึ้นอยู่กับสถานการณ์ สิ่งที่คุณเคยคิดว่ามันผิด อาจเป็นสิ่งที่ถูก สิ่งที่คุณเคยคิดว่ามันถูก อาจกลายเป็นสิ่งที่ผิดก็ได้
Create Date : 14 ธันวาคม 2558 |
|
1 comments |
Last Update : 14 ธันวาคม 2558 0:14:02 น. |
Counter : 857 Pageviews. |
|
|
|
ไม่ถนัดแนวนี้เลย
ขอบคุณสำหรับความรู้ใหม่ค่า