42 บทท่ี 2 ขัน้ ตอนและจรยิ ธรรมในการเขียนโปรแกรมเกมคอมพวิ เตอร์ ยคุ ท่ี 3 ภาษาระดับสงู (High-Level Languages) ใชป้ ระโยคภาษาอังกฤษ (Statements) ในการสั่งงานและควบคุมคอมพิวเตอร์ มีการก�ำหนดข้ันตอนการท�ำงาน (Procedural) โค้ดโปรแกรม จงึ มจี �ำนวนมากบรรทดั โดยมโี ครงสรา้ งภาษาและชดุ ค�ำสงั่ เหมอื นกบั ภาษาองั กฤษ รวมทงั้ สามารถใชน้ พิ จน์ ทางคณติ ศาสตรใ์ นการค�ำนวณได้ ลดความยงุ่ ยากในการเขยี นโปรแกรมลง มคี วามยดื หยนุ่ ในการแกป้ ญั หา ได้มากกว่าภาษาเคร่ืองและภาษาแอสเซมบลี ท้ังยังสามารถประมวลผลการใชง้ านคอมพวิ เตอรเ์ พมิ่ ขนึ้ ได้ เชน่ การควบคมุ และสง่ั เครอ่ื งคอมพวิ เตอรเ์ มนเฟรม การควบคุมเคร่อื งจักรกลตา่ ง ๆ ทเ่ี ปน็ การแกป้ ญั หา เฉพาะทางอุตสาหกรรม ท้ังนี้ การเขียนโปรแกรมด้วยภาษาระดับสูงต้องใช้ตัวแปลภาษาท้ังคอมไพเลอร์ และอนิ เทอรพ์ รีเตอร์ ยุคที่ 4 ภาษาระดับสูงมาก (Very High-Level Languages) หรือภาษายุคท่ี 4 (4GL : Fourth-Generation Languages) เป็นภาษาที่ไม่ต้องก�ำหนดข้ันตอนการท�ำงาน (Non-Procedural) ใช้ค�ำสั่งท่ีต้องการโปรแกรมก็แสดงผลลัพธ์ตามค�ำส่ังได้ทันที เช่น ชุดค�ำส่ังภาษา SQL (Structured Query Language) ตวั อยา่ ง TABLE FILE SALES SUM UNITS BY MONTH BY CUSTOMER BY PRODUCT ON CUSTOMER SUBTOTAL PAGE BREAK END หรือ SELECT First Name, Last Name FROM Employees WHERE City = “London” จากทง้ั สองตวั อยา่ งขา้ งตน้ เป็นการเขียนโปรแกรมท่ีสั้นมาก เพราะภาษาระดับสูงมากไดม้ ีการ สร้างชุดการท�ำงานแต่ละตัวเพื่อใช้ท�ำงานในแต่ละด้านไว้แล้ว โดยเป็นการเรียกชุดการท�ำงานท่ีมีอยู่แล้ว มาสรา้ งเปน็ โปรแกรมใหม่ท่ีเราต้องการได้ ท�ำให้มีจุดเด่นในการเขียนโปรแกรมท่ีสั้นและงา่ ย เนน้ ผลลพั ธ์ ของงาน แกไ้ ข เปลยี่ นแปลงโปรแกรมได้สะดวก พัฒนาโปรแกรมไดร้ วดเร็วขนึ้ ศึกษาการเขยี นโปรแกรม ไดง้ า่ ยข้นึ ยุคท่ี 5 ภาษาธรรมชาติ (Natural Languages) เป็นภาษาท่ีไมต่ อ้ งสนใจไวยากรณข์ องภาษา คอมพิวเตอร์ สามารถเขียนค�ำสงั่ หรือสง่ั งานคอมพวิ เตอรท์ �ำงานโดยใชภ้ าษาธรรมชาติตา่ ง ๆ เชน่ ภาพ เสียง แล้วคอมพิวเตอร์จะท�ำการแปลความหมายและท�ำงานตามค�ำสั่งนั้นเอง แต่ถ้ามีข้อผิดพลาดหรือ ไมเ่ ขา้ ใจค�ำสง่ั คอมพวิ เตอรก์ จ็ ะมขี อ้ ความแจง้ กลบั มาใหย้ นื ยนั ความถกู ตอ้ ง โดยในการแปลความหมายนน้ั
การสรา้ งเกมคอมพวิ เตอรเ์ บ้ืองตน้ 43 จะใช้การเรียนรู้ด้วยตนเองและระบบฐานความรู้ (Knowledge Base System) ท่ีมีความใกล้เคียงกับ การใช้ภาษาของมนษุ ย์มาชว่ ยแปลความหมายของค�ำสั่งและตอบสนองตอ่ การใช้งานของผู้ใช้ ภาษาคอมพิวเตอร์ท่ีใช้ในการเขยี นโปรแกรมเพ่ือแก้ปัญหาตา่ ง ๆ มหี ลายภาษา ซ่ึงแต่ละภาษา มจี ุดเดน่ ทเี่ หมาะกับการใช้งานต่างกัน จงึ มีหลักพิจารณาการเลือกใช้ภาษาคอมพิวเตอร์ ดังนี้ 1. เลือกภาษาคอมพิวเตอร์ท่ีเป็นภาษามาตรฐานในองค์กร ตามความช�ำนาญของนักเขียน โปรแกรม 2. เลือกตามคุณสมบัติและความเหมาะสมกับงานเฉพาะทาง เช่น โปรแกรมภาษาโคบอล (Cobol) มคี ุณสมบัตดิ า้ นการค�ำนวณ จึงเหมาะกบั การเขียนโปรแกรมดา้ นบัญชี เป็นต้น 3. เลือกภาษาท่ีสามารถรองรับการท�ำงานร่วมกับโปรแกรมอื่นได้ เช่น การเขียนโปรแกรมที่ เช่อื มตอ่ กับฐานขอ้ มูลบน Microsoft Access ควรเลือกใช้ Visual Basic ที่ออกแบบให้รองรบั กบั การ ตดิ ตอ่ ฐานขอ้ มูลบน Microsoft Access เปน็ ตน้ 4. เลอื กภาษาท่ีสามารถท�ำงานร่วมกับระบบอ่นื ได้ เชน่ การเขียนโปรแกรมรับข้อมูลระหว่าง Smartphone กบั PC หรอื Server Computer เปน็ ต้น ตวั อยา่ งภาษาคอมพิวเตอรท์ ีน่ �ำมาเขียนโปรแกรมในงานดา้ นตา่ ง ๆ สรปุ ได้ดังน้ี 1. ภาษาฟอรแ์ ทรน (FORTRAN : FORmula TRANslator) นยิ มใชใ้ นงานทมี่ กี ารค�ำนวณมาก ๆ มคี วามสามารถในการแกป้ ญั หาสมการทางคณติ ศาสตรท์ ซ่ี บั ซอ้ นได้ งานดา้ นวทิ ยาศาสตร์ วศิ วกรรมศาสตร์ งานวจิ ัย การวิเคราะหท์ างเศรษฐศาสตร์ จดั เป็นภาษาระดับสูงทพ่ี ฒั นาโดยบรษิ ัท IBM ในปี ค.ศ.1957 2. ภาษาอัลกอร์ (ALGOL : ALGOrithmic Language) ออกแบบใหเ้ ป็นภาษาส�ำหรับงาน วิทยาศาสตร์ และพัฒนาต่อเป็นภาษา PL/I และภาษาปาสกาล (Pascal) มีค�ำส่ังท่ีก�ำหนดโครงสร้าง และชนดิ ขอ้ มูลอย่างสมบรู ณ์ มีการน�ำไปเปน็ พนื้ ฐานในการออกแบบภาษารุ่นที่ 3 ทีน่ ยิ มในปัจจบุ ัน เช่น ภาษาปาสกาล (Pascal) โดยภาษา ALGOL ทเ่ี ปน็ มาตรฐาน ไดแ้ ก่ ALGOL-60 และ ALGOL-68 3. ภาษาโคบอล (COBOL : Common Business Oriented Language) จดั เปน็ ภาษาระดบั สงู ใช้ในการประมวลผลแฟ้มข้อมูลท่ีมีขนาดใหญ่yการค�ำนวณทางดา้ นธรุ กจิ บนเครอ่ื งคอมพวิ เตอรข์ นาดใหญ่ โดยค�ำส่ังของภาษา COBOL คล้ายภาษาอังกฤษท�ำให้อ่านและเขียนโปรแกรมง่ายข้ึน ยุคแรกได้รับ ความนยิ มในเครอ่ื งขนาดใหญ่ ระดบั เมนเฟรม แตป่ จั จบุ นั มตี วั แปลภาษา COBOL ทใ่ี ชบ้ นเครอื่ งคอมพวิ เตอร์ ส่วนบุคคล (PC) นอกจากน้ันยังมีภาษา COBOL ที่ได้รับการพัฒนาและออกแบบตามแนวทางภาษา โปรแกรมเชงิ วตั ถุ เรยี กวา่ Visual COBOL ชว่ ยใหก้ ารเขยี นโปรแกรมงา่ ยขนึ้ และสามารถพฒั นาตอ่ ยอด ในงานอ่นื ๆ ได้ 4. ภาษา PL/I (Programming Language One) ออกแบบมาใช้กับงานด้านวิทยาศาสตร์ และธรุ กจิ โดยรวมความสามารถของภาษา FORTRAN ภาษา ALGOL และภาษา COBOL เข้าดว้ ยกนั
44 บทที่ 2 ขัน้ ตอนและจริยธรรมในการเขยี นโปรแกรมเกมคอมพิวเตอร์ ซง่ึ เปน็ ภาษาแรกทท่ี �ำงานไดห้ ลายดา้ น ทง้ั วทิ ยาศาสตร์ วศิ วกรรม ธรุ กจิ แตข่ อ้ จ�ำกดั คอื ท�ำใหต้ วั แปลภาษา มีขนาดใหญ่มาก ไม่สามารถน�ำไปใช้กบั เครื่องคอมพิวเตอร์ขนาดเล็กได้ นอกจากน้ันภาษาน้ียังก�ำหนด รูปแบบและประเภทขอ้ มลู ได้หลายแบบ ท�ำงานไดห้ ลายงานพรอ้ มกนั และท�ำงานกับอปุ กรณร์ ับส่งข้อมูล ทซี่ บั ซอ้ นได้ 5. ภาษาเบสกิ (BASIC : Beginner’s All-purpose Symbolic Instruction Code) ส�ำหรบั ผู้เร่ิมศกึ ษาการเขียนโปรแกรมคอมพวิ เตอร์ เพราะงา่ ยต่อการเรยี นรู้ ใชง้ า่ ย ติดต้งั บนเครอ่ื งคอมพวิ เตอร์ สว่ นบคุ คลเปน็ สว่ นมาก มกี ารพัฒนาเป็นภาษา Visual Basic ซง่ึ นยิ มอยา่ งแพรห่ ลาย สามารถประยกุ ต์ ใช้ในงานด้านวิทยาศาสตรแ์ ละธุรกิจ 6. ภาษาปาสกาล (Pascal เปน็ ชอื่ ของ Blaise Pascal) ตง้ั ชอื่ เพอื่ เปน็ เกยี รตแิ กน่ กั คณติ ศาสตร์ ชาวฝรั่งเศส คอื Blaise Pascal เปน็ ภาษาที่ง่ายต่อการเขยี นโปรแกรม ง่ายตอ่ การเรียนรู้ แตกตา่ งจาก ภาษาเบสกิ คือ ภาษาปาสกาลเปน็ ภาษาโครงสรา้ ง (Structure Programming) นยิ มใชใ้ นภาษาส�ำหรับ การเรียนการสอนและเขียนโปรแกรมประยกุ ต์ตา่ ง ๆ ภาษาปาสกาลมีตวั แปลภาษาท้งั ที่เปน็ คอมไพเลอร์ และอินเทอร์พรีเตอร์ โดยมโี ปรแกรมเทอรโ์ บปาสกาล (Turbo Pascal) ทพ่ี ัฒนาปรบั ปรงุ ขอ้ จ�ำกัดของ ภาษาปาสกาลรุน่ แรก ๆ นิยมใช้ในงานทุกด้านอยา่ งแพรห่ ลาย 7. ภาษาซี (C) ส�ำหรับนักเขียนโปรแกรม ผู้ผลิตซอฟต์แวร์และโปรแกรมประยุกต์ต่าง ๆ เป็นภาษาระดับสูงyได้รับความนิยมอย่างมากเพราะเป็นภาษาที่รวมข้อดีของภาษาระดับสูงในเร่ืองของ ความยืดหยุ่นyและไวยากรณ์ที่ง่ายต่อการเข้าใจกับข้อดีของภาษาแอสเซมบลีในเร่ืองของประสิทธิภาพ และความเร็วในการท�ำงานyท�ำให้โปรแกรมท่ีพัฒนาด้วยภาษาซีท�ำงานได้เร็วกว่าโปรแกรมท่ีเขียนด้วย ภาษาระดับสงู อืน่ ๆ 8. ภาษาซพี ลสั พลสั (C++) พฒั นาขนึ้ มาจากภาษา C นยิ มน�ำไปสรา้ งโปรแกรมประยกุ ตต์ า่ ง ๆ เชน่ Word Processor โดยประยกุ ตแ์ นวความคดิ ของการโปรแกรมเชงิ วตั ถุเขา้ มาใช้ในภาษาซี 9. ภาษา LISP (LISt Processing) เปน็ ภาษาที่สามารถโต้ตอบกับผ้ใู ชไ้ ด้ทนั ที เหมาะส�ำหรับ จัดการกบั กลุ่มของข้อมูลทสี่ มั พันธ์ในรปู แบบตาราง 10. ภาษาโลโก้ (LOGO) นยิ มใชใ้ นโรงเรยี น เพ่ือสอนทกั ษะการแกป้ ญั หาเบ้ืองต้นให้นักเรยี น 11. ภาษา PROLOG (Programming LOGic) จดั เปน็ ภาษาธรรมชาติ นยิ มใชใ้ นงานปญั ญาประดษิ ฐ์ เหมาะส�ำหรบั ใชแ้ สดงความรู้ (Knowledge Representation) โดยน�ำความรมู้ าเขยี นในรปู ของอนปุ ระโยค (Clause) เป็นภาษาคู่แขง่ กับภาษา Lisp 12. ภาษา RPG (Report Program Generator) ออกแบบมาใช้กบั งานธุรกจิ มคี ุณสมบัติใน การสร้างโปรแกรมพมิ พ์รายงานได้ยดื หยุ่นดมี าก 13. ภาษา Modula-2 เป็นภาษาท่ีพัฒนามาจากภาษาปาสกาล โดย นิคลอส เวริ ธ์ ทพี่ ฒั นา ลักษณะท่ดี ขี องภาษาในการเขยี นโปรแกรมมากข้ึน ไดแ้ ก่ การท�ำใหม้ กี ารซอ่ นสารสนเทศ (Information
การสร้างเกมคอมพิวเตอร์เบ้อื งต้น 45 Hiding) หลักการนามธรรม (Abstraction) การก�ำหนดชนิดข้อมูลที่สามารถน�ำไปใชก้ ับการด�ำเนนิ งาน แบบ Recursion และ Concurrency ได้ แตไ่ ม่ได้รบั ความนิยมในปัจจุบัน 14. ภาษา Ada มีโครงสร้างคล้ายภาษาปาสกาล แต่ท�ำงานได้หลายงานพร้อมกัน (Multi- tasking) จดั การกบั การขดั จังหวะได้ (Interrupt Handling) จดั จงั หวะการท�ำงานใหเ้ ข้ากัน (Intertask Synchronization) 15. ภาษา APL (A ProgrammingyLanguage)yเป็นภาษาระดับสูงyแตกต่างจากภาษา คอมพิวเตอร์อื่น โดยใช้สัญลักษณ์แทนการท�ำงานหรือการด�ำเนินการทางคณิตศาสตร์และอักขระ ท�ำให้ โปรแกรมมีขนาดกะทดั รดั เป็นภาษาที่นิยมใชแ้ ก้ปญั หาคณิตศาสตร์ 16. ภาษาวิชวลเบสิก (Visual Basic) เป็นภาษาระดับสูง และเป็นภาษาแรกท่ีมีเคร่ืองมือ เป็นภาพกราฟิกท่ีช่วยในการเขียนโปรแกรม ได้รับความนิยมในการพัฒนาโปรแกรมบนระบบปฏิบัติการ Windows เน่ืองจากมีหลักการเขียนโปรแกรมแบบ Event Driven ซ่ึงเป็นการเขียนโปรแกรมเพ่ือ ก�ำหนดการท�ำงานให้กับตัวควบคุม (Control) ต่าง ๆ ท่ีสร้างข้ึนตามเหตุการณ์ (Event) ตัวอย่างเช่น การคลิกเมาส์ของผ้ใู ช้ การรบั ขอ้ มลู เขา้ จากแปน้ พมิ พ์ 17. ภาษาจาวา (Java) เป็นภาษาในยุคที่ 4 สนับสนุนการเขียนโปรแกรมเชิงวัตถุ ซึ่งเป็น เทคนิคท่ีใช้วัตถุ (Object) เป็นหลักในการพิจารณาสิ่งต่าง ๆ ในโปรแกรม ประกอบด้วยกลุ่มวัตถุ ที่จดั อยู่ในรปู ของคลาส (Class) แต่ละคลาสมคี ุณสมบตั ิการถา่ ยทอดคณุ ลักษณะ (Inheritance) ท�ำงาน บนเคร่ืองคอมพิวเตอร์ที่ไม่ขึ้นกับแฟลตฟอร์ม (Platform Independent) ใด ๆ จึงเป็นที่นิยมมาก ในการเขียนโปรแกรม 18. ภาษาโปรแกรมเชงิ วตั ถุ (OOP : Object-Oriented Programming Language) เหมาะ กับการเขียนโปรแกรมขนาดใหญ่ ส่ิงท่ีเขียนเป็นคลาสของวัตถุ ประกอบด้วยคุณสมบัติ (Property) และวิธีการท�ำงาน (Method) สามารถท�ำการแก้ไขหรือเพิ่มเติมค�ำสั่งใน Method ได้โดยไม่กระทบ ต่อส่วนอ่ืนของโปรแกรม มีหน้าจอการโต้ตอบบนจอภาพ ตัวอย่าง 1) Smalltalk เป็นภาษา OOP ภาษาแรก ใช้แป้นพิมพ์ปอ้ นขอ้ มลู แตท่ �ำทกุ งานดว้ ยเมาส์ 2) C++ ท่พี ัฒนาโดยใช้รหัสมาตรฐานของ ภาษา C ให้เป็นภาษา OOP สามารถเขียนทง้ั แบบโครงสรา้ งและแบบโปรแกรมเชิงวัตถไุ ด้ 3) โปรแกรม ในตระกูล Visual เป็นภาษาที่พฒั นาต่อจาก OOP ท�ำงานในรูปแบบกราฟิก โดยการวาดรูป การเลือก การคลกิ บนไดอะแกรม 4) ภาษา JAVA 19. ภาษาซชี ารป์ (C Sharp หรอื C#) เปน็ ภาษาโปรแกรมเชงิ วตั ถุ (OOP) ทที่ �ำงานบนดอตเนต็ เฟรมเวริ ก์ (.NET Framework) ไดร้ วบรวมขอ้ ดขี องภาษาตา่ ง ๆ เชน่ ภาษา JAVA ภาษาเดลไฟ (Delphi) ภาษา C++ เข้าด้วยกัน มีไวยากรณ์ที่เข้าใจง่าย มีประสิทธิภาพและความเร็วในการท�ำงานสูงขึ้นและ ปจั จบุ ันภาษา C# เป็นภาษามาตรฐานรองรับโดย ECMA และ ISO
46 บทที่ 2 ขน้ั ตอนและจรยิ ธรรมในการเขยี นโปรแกรมเกมคอมพวิ เตอร์ ขั้นตอนการเขียนโปรแกรมเกมคอมพวิ เตอร์ การเขยี นโปรแกรมเปน็ ขนั้ ตอนหนง่ึ ของการสรา้ งเกมคอมพวิ เตอร์ โดยอยใู่ นขนั้ ตอนของการสรา้ ง หรือพัฒนา ซ่งึ ตอ้ งวิเคราะหใ์ หไ้ ด้ว่า มีขอ้ มูลอะไรบ้างที่จะน�ำมาประมวลผลและต้องการให้แสดงผล ดงั น้ี รบั ขอ้ มลู ประมวลผล แสดงผล (INPUT) (PROCESS) (OUTPUT) ซ่ึงโดยท่ัวไปขั้นตอนการพัฒนาโปรแกรม จะประกอบด้วย 1. การก�ำหนดและวเิ คราะหป์ ัญหา (Problem Definition and Problem Analysis) 2. เขยี นอัลกอรทิ ึม ผงั งาน และรหสั จ�ำลอง (Pseudo Coding) 3. เขยี นโปรแกรม (Programming) 4. ทดสอบและแก้ไขโปรแกรม (Program Testing and Debugging) 5. ท�ำเอกสารและบ�ำรงุ รักษา (Program Documentation and Maintenance) โดยมรี ายละเอียดในแต่ละขั้นตอนดงั น้ี 1. การก�ำหนดและวิเคราะห์ปัญหา (Problem Definition and Problem Analysis) เป็นข้ันตอนท่ีก�ำหนดแนวทางในการแก้ปัญหาให้เหมาะสมกับคอมพิวเตอร์ เพ่ือให้การท�ำงานเป็นไป อย่างมีประสิทธิภาพ ต้องเข้าใจกับปัญหาท่ีต้องการแก้ไขและค้นหาสิ่งที่ต้องการ วิเคราะห์โดยละเอียด ดงั นั้น ข้นั ตอนน้จี ึงนับวา่ ส�ำคัญส�ำหรับการเตรยี มเขยี นโปรแกรม เพราะการวิเคราะห์ คือ การพิจารณา ถึงผลลัพธ์ที่ต้องการได้จากโปรแกรม รูปแบบของผลลัพธ์ ข้อมูลที่ต้องจัดเตรียม วิธีการและขั้นตอน การเรียงล�ำดับค�ำส่ังภายในโปรแกรม รวมถึงเทคนิคท่ีจะให้คอมพิวเตอร์ท�ำงานตามที่ก�ำหนดได้ ซึ่งการ วเิ คราะหอ์ ยา่ งถกู ตอ้ ง ชว่ ยใหก้ ารเขยี นโปรแกรมท�ำงานไดต้ ามความตอ้ งการและประหยดั เวลา ในการแกไ้ ข ออกแบบพัฒนาโปรแกรม มี 5 ขัน้ ตอนดงั น้ี 1.1) ก�ำหนดขอบเขตของปัญหา เป็นการก�ำหนดรายละเอียดที่ชัดเจนว่าต้องการให้ คอมพิวเตอร์ท�ำอะไร มีตัวแปรหรือค่าคงท่ีในลักษณะใด ซึ่งถ้าไม่ได้ก�ำหนดขอบเขตของปัญหาจะท�ำให้ คอมพิวเตอร์ตัดสินใจได้ยากว่าข้อมูลนั้น ถูกหรือผิด ส�ำหรับงานท่ีต้องการผลลัพธ์มากกว่าหนึ่งอย่าง ควรก�ำหนดเป็นข้อ ๆ ให้ชัดเจน
การสร้างเกมคอมพวิ เตอร์เบื้องตน้ 47 1.2) ก�ำหนดลักษณะของข้อมูลเข้าและข้อมูลออก ต้องรู้ว่าข้อมูลเข้าเป็นอย่างไร มีข้อมูล อะไรบ้าง เพ่ือให้โปรแกรมท�ำการประมวลผลและแสดงผล เช่น การรับค่าข้อมูลจากแป้นพิมพ์ การใช้เมาส์ การก�ำหนดปุ่มต่าง ๆ เมื่อพิจารณาข้อมลู เข้าหรอื ตวั เลขท่เี กีย่ วขอ้ ง ถ้าตวั เลขทใ่ี ชม้ ลี ักษณะ เปลี่ยนไปแบบไม่มีระบบ มีความห่างของตัวเลขไม่แน่นอนต้องใช้วิธีรับค่าตัวแปรน�ำเข้า แต่ถ้าข้อมูลที่ เกี่ยวข้องเป็นระบบและมชี ่วงหา่ งเทา่ กนั อาจใช้วธิ ีก�ำหนดตวั แปรให้มคี ่าเทา่ กบั คา่ เริ่มต้นของข้อมูลแทน การรับเขา้ และเขียนโปรแกรมให้ก�ำหนดคา่ เอง 1.3) ก�ำหนดรูปแบบผลลัพธ์ รูปแบบผลลัพธ์เป็นการศึกษาถึงลักษณะผลลัพธ์ที่ต้องการ ให้เคร่ืองคอมพิวเตอร์แสดงออกมา เป็นการก�ำหนดลักษณะการแสดงผลทางหน้าจอให้แสดงผลอย่างไร มรี ปู รา่ งแบบใด เชน่ ขอ้ มลู ประเภทใด ตวั เลข ตวั อกั ษร ขอ้ ความ หรอื เป็นตัวเลขทใี่ ช้ทศนิยมกต่ี �ำแหนง่ หรือถ้ารปู แบบผลลพั ธ์ตอ้ งมหี วั ตาราง ต้องพมิ พ์หวั ตารางกอ่ นเสมอ 1.4) ก�ำหนดตัวแปรท่ีใช้ เป็นการก�ำหนดว่าต้องใช้ตัวแปรชนิดใดแทนข้อมูลน�ำเข้า หรือ แทนคา่ ท่อี ยใู่ นระหว่างการประมวลผล ตลอดจนตวั แปรท่ีใชแ้ สดงผลลัพธ์ ก�ำหนดตัวแปรดว้ ยชอ่ื ทแี่ ทน ความหมายของขอ้ มลู น�ำเขา้ เพอ่ื สะดวกตอ่ การน�ำเอาขอ้ มลู ไปวเิ คราะหใ์ นขน้ั ตอนการประมวลผล ซง่ึ การ ต้ังช่ือตัวแปรมีกฎทั่วไป คือ ตั้งชื่อให้ตรงกับกฎการตั้งชื่อตัวแปรของภาษาที่จะใช้ในการเขียนโปรแกรม นอกจากนน้ั ตวั แปรต้องไมซ่ ำ้� กับศพั ทเ์ ฉพาะของภาษาทเี่ ขยี น และควรส่ือความหมายกบั คา่ ทแี่ ทน 1.5) ก�ำหนดวิธีการประมวลผล (Process Specification) ต้องรู้ว่าจะให้คอมพิวเตอร์ ประมวลผลอย่างไร เพ่ือให้ได้ผลลัพธ์ตามต้องการ ใช้การวางแผนวิธีการคิดต่าง ๆ และน�ำมาเรียง เป็นล�ำดบั ท่ีถกู ตอ้ งเพอ่ื ไดค้ �ำตอบหรอื ผลลัพธน์ น้ั ๆ ซ่งึ การเรียงค�ำส่ังในโปรแกรมเพื่อประมวลผลข้อมูล มี 2 วิธี คือ - การรบั ขอ้ มลู ทลี ะคา่ เขา้ ไปประมวลผล วธิ นี จี้ ะรบั ขอ้ มลู รายการแรกเขา้ มาประมวลผล แล้วแสดงผลลัพธ์ โดยอาจรับจากอปุ กรณร์ บั เข้า เชน่ แป้นพิมพ์ เครอื่ งอ่านบารโ์ ค้ด เปน็ ตน้ เมือ่ แสดง ผลลัพธ์รายการแรกแล้วก็จะรับข้อมูลรายการใหม่ เพ่ือน�ำไปประมวลผลและแสดงผลลัพธ์อีก เป็นเช่นน้ี เรื่อย ๆ จนหมดข้อมูลท่ีต้องการประมวลผลซึ่งเป็นวิธีท่ีนิยมในร้านค้าขายปลีก ร้านขายหนังสือ ทั้งน้ี ตอ้ งมกี ารก�ำหนดจดุ สน้ิ สดุ ในการประมวลผลหรอื มกี ารทดสอบวา่ ขอ้ มลู เขา้ หมดหรอื ยงั อาจใชว้ ธิ ที ดสอบ ขอ้ มลู สดุ ท้ายหรือก�ำหนดตัวแปรในการนบั รอบ - การรบั ขอ้ มลู เขา้ ไปทง้ั หมดแลว้ จงึ ประมวลผล วิธีนี้จะรับข้อมูลท้ังหมดมาเก็บไว้ใน หนว่ ยความจ�ำกอ่ น จากนนั้ จงึ ประมวลผลและแสดงผลของทกุ รายการในครง้ั เดยี ว วธิ นี ตี้ อ้ งใชห้ นว่ ยความจ�ำ มากขึน้ ขณะท่ีป้อนขอ้ มูลลงไป 2. เขยี นอลั กอรทิ มึ (Algorithm) ผงั งาน (Flowchart) และรหสั จำ� ลอง (Pseudo Coding) เม่ือก�ำหนดและวิเคราะห์ปัญหาแล้ว ขั้นตอนต่อไปเป็นการน�ำเคร่ืองมือมาช่วยในการออกแบบโปรแกรม แต่ยังไม่ใช่การเขียนโปรแกรม เขียนเป็นล�ำดับข้ันตอนการท�ำงานของโปรแกรมท่ีเรียกว่า อัลกอริทึม
48 บทที่ 2 ขัน้ ตอนและจริยธรรมในการเขียนโปรแกรมเกมคอมพวิ เตอร์ (Algorithm) ซึ่งจะแสดงขั้นตอนการแก้ปัญหาด้วยประโยคท่ีชัดเจน มีรายละเอียดค�ำส่ังในการท�ำงาน เพยี งพอทจ่ี ะน�ำมาเขยี นโปรแกรมใหส้ ามารถท�ำงานไดจ้ รงิ มาเขยี นอยใู่ นภาษาเขยี น รปู แบบภาษาองั กฤษ ที่จัดเปน็ โครงสรา้ งไว้ โดยเน้นล�ำดบั ขน้ั ตอนการท�ำงานเปน็ หลัก ส�ำหรับการเขียนผังงาน เปน็ การน�ำเอา ขนั้ ตอนการท�ำงานมาเขยี นเปน็ ภาพหรอื สญั ลกั ษณ์ โดยเปลยี่ นจากค�ำพดู หรอื ขอ้ ความในการวเิ คราะหง์ าน มาเป็นรูปภาพและค�ำอธิบายส้ัน ๆ จากน้ันจึงเขียนรหัสจ�ำลองท่ีผสมระหว่างค�ำในภาษาอังกฤษท่ัวไป กบั ภาษาคอมพิวเตอร์ โครงสรา้ งของรหัสจ�ำลองคล้ายกบั การเขียนโปรแกรมมาก - อลั กอรทิ มึ (Algorithm) หมายถงึ ล�ำดบั ขน้ั ตอนเชงิ ค�ำนวณทแ่ี ปลงขอ้ มลู เขา้ เปน็ ผลลพั ธ์ ที่ต้องการ โดยมีจุดประสงค์ คือ การท�ำงานท่ีถูกต้องและการท�ำงานท่ีมีประสิทธิภาพ มีการจดั ล�ำดบั ความคดิ เปน็ ขน้ั ตอนสอดคลอ้ งกบั วธิ แี กป้ ญั หา แสดงล�ำดบั การท�ำงานตามคณุ สมบตั ดิ า้ นการประมวลผล ของคอมพวิ เตอร์ ทสี่ ามารถแปลงเปน็ ล�ำดบั ค�ำสง่ั ใหค้ อมพวิ เตอรท์ �ำงานดว้ ยการเขยี นโปรแกรมคอมพวิ เตอร์ ด้วยภาษาท่ีเหมาะสม เพอ่ื สั่งให้คอมพิวเตอร์ท�ำงานตามอัลกอรทิ มึ ที่ก�ำหนด มี 3 แนวทางในการเขียน คอื การท�ำงานลกั ษณะการนบั คา่ สะสมในหนว่ ยความจ�ำ การท�ำงานลกั ษณะวนรอบการท�ำงาน และการ ท�ำงานลักษณะหาคา่ มากทสี่ ุดและคา่ น้อยทส่ี ดุ - ผังงาน (Flowchart) ได้กล่าวเกี่ยวกับรายละเอียดเบื้องต้นไว้แล้วในหน่วยที่ผ่านมา ในหน่วยน้จี งึ ขออธิบายเพมิ่ เตมิ ในลักษณะการน�ำไปใช้ควบคกู่ ับรหสั จ�ำลอง - รหัสจ�ำลอง (Pseudo Code) เป็นการน�ำภาษาอังกฤษและภาษาคอมพิวเตอร์ที่เรา เข้าใจง่ายมาแสดงล�ำดับการท�ำงานของโปรแกรม เพ่ือเป็นแนวทางให้นักเขียนโปรแกรมน�ำไปแปลง เป็นภาษาโปรแกรมคอมพวิ เตอร์ต่อไป ช่วยใหเ้ ขียนโปรแกรมได้งา่ ยขนึ้ และยังเป็นต้นแบบให้นกั พัฒนา โปรแกรมน�ำไปเขยี นด้วยภาษาตา่ ง ๆ ได้ รหัสจ�ำลองทด่ี ีต้องชัดเจน ส้นั ได้ใจความ แสดงดังตารางการ เขียนรหัสจ�ำลองตอ่ ไปน้ี การเขยี นรหสั รปู แบบ ตัวอยา่ ง จ�ำลอง read var1, var2, var3, … read id, name การรบั ขอ้ มูล, var หมายถึง ขอ้ มลู หรอื ตัวแปร ซง่ึ ถ้ามขี อ้ มลู หมายถึง รับข้อมูลรหัส (id) และชอื่ (name) อา่ นข้อมลู หรือตัวแปรหลายตวั จะแยกด้วยเครือ่ งหมาย จลุ ภาค ( , ) การแสดงผล print var1, var2, var3, … print name หมายถงึ พิมพข์ ้อมูลชอื่ (name)
การสร้างเกมคอมพวิ เตอร์เบอื้ งต้น 49 การเขยี นรหสั รูปแบบ ตวั อยา่ ง จำ� ลอง compute variable = expression / constant compute total = sc1 + sc2 การค�ำนวณ variable หมายถงึ ขอ้ มูลหรือตัวแปร หมายถึง expression หมายถงึ สูตรในการค�ำนวณ ค�ำนวณคะแนนรวม (total) = ขอ้ มูล 1 (sc1) constant หมายถึง คา่ คงท่ี + ข้อมูล 2 (sc2) การเปรียบเทยี บ if (condition) then true statement(s) If x > 0 then read x ค่าสองคา่ else false statement(s) else compute sum = x + y endif endif condition หมายถงึ เงอื่ นไขทีท่ ดสอบ หมายถงึ ถ้า x มคี ่ามากกวา่ 0 ใหอ้ า่ นค่า x true statement หมายถงึ ถ้าเงอ่ื นไขท่ี แตถ่ ้า x มีคา่ นอ้ ยกวา่ 0 ให้ค�ำนวณ x + y ทดสอบเป็นจริงให้ท�ำตามค�ำสัง่ ทรี่ ะบุ แลว้ เก็บค่าท่ีไดไ้ ว้ทตี่ ัวแปร sum false statement หมายถงึ ถ้าเง่ือนไขเปน็ เท็จ ให้ท�ำตามค�ำส่ังท่ีระบุ การเปรียบเทยี บ case variable of case level of ทางเลอื กหลายทาง a : a-statement 1 : write ‘Beginner’ b : b-statement 2 : write ‘Amateur’ c : c-statement 3 : write ‘Semi-Pro’ endcase 4 : write ‘Professional’ 5 : write ‘World Class’ endcase หมายถงึ a statement หมายถึง กรณีตัวแปรมีค่าเป็น ถา้ ดา่ น 1 พมิ พ์ ‘Beginner’ a ใหท้ �ำค�ำสง่ั a ถ้าด่าน 2 พิมพ์ ‘Amateur’ b statement หมายถงึ กรณตี วั แปรมีค่าเปน็ ถ้าดา่ น 3 พิมพ์ ‘Semi-Pro’ b ใหท้ �ำค�ำส่ัง b ถา้ ด่าน 4 พมิ พ์ ‘Professional’ c statement หมายถงึ กรณีตัวแปรมคี ่าเปน็ ถ้าดา่ น 5 พิมพ์ ‘World Class’ c ให้ท�ำค�ำสั่ง c
50 บทที่ 2 ขนั้ ตอนและจริยธรรมในการเขียนโปรแกรมเกมคอมพิวเตอร์ การเขยี นรหสั รปู แบบ ตวั อยา่ ง จ�ำลอง while (condition) do statement read data การท�ำงานซ�้ำ enddo while (data< >0)do - กรณตี รวจ read data สอบเง่ือนไข enddo กอ่ น หมายถึง อา่ นค่าข้อมลู data ถา้ มคี า่ ไมเ่ ทา่ กบั 0 ใหร้ บั ขอ้ มลู data แลว้ ยอ้ น ไปเปรียบเทียบเง่ือนไขจนกว่าเง่ือนไขมีค่า เปน็ เทจ็ หรอื data มคี า่ เทา่ กบั 0 จงึ จะไปท�ำ ค�ำสง่ั ถัดไป การท�ำงานซำ้� do statement do read data - กรณีประมวล while (condition) while (data< >0) ผลก่อนแล้ว enddo enddo ตรวจสอบ หมายถึง เง่อื นไข อา่ นคา่ ขอ้ มลู data และถา้ data มคี า่ ไมเ่ ทา่ กบั ภายหลัง 0 ให้รับข้อมลู data แลว้ ย้อนไปเปรยี บเทียบ เงอื่ นไขจนกวา่ เงอื่ นไขมคี า่ เปน็ เทจ็ หรอื data มคี า่ เทา่ กบั 0 จึงจะท�ำค�ำสั่งตอ่ ไป ตวั อย่าง การรบั คะแนนจากการโจมตดี ว้ ยดาบ มีเงอ่ื นไขดังนี้ ถ้าโจมตีด้วยดาบตดิ ต่อกัน น้อยกว่า 1 ครั้ง ไมไ่ ดร้ ับคะแนน ถา้ โจมตีด้วยดาบติดตอ่ กนั มากกวา่ 1 ครง้ั แต่ไมเ่ กนิ 5 ครั้ง ไดร้ บั 2 คะแนน ถา้ โจมตีด้วยดาบติดต่อกัน มากกวา่ 5 ครัง้ แต่ไมเ่ กนิ 10 คร้งั ไดร้ บั 5 คะแนน ถา้ โจมตดี ว้ ยดาบตดิ ตอ่ กัน มากกว่า 10 ครงั้ ไดร้ บั 10 คะแนน การวิเคราะหข์ ั้นตอนการค�ำนวณหาคะแนนจากการโจมตดี ว้ ยดาบ ผลลพั ธ์ คอื คะแนนจากการโจมตีดว้ ยดาบ ข้อมลู เข้า คอื จ�ำนวนการโจมตดี ้วยดาบตดิ ตอ่ กัน วธิ ปี ระมวลผล น�ำเสนอ 2 วธิ ี คือ ผงั งาน และ รหัสจ�ำลอง ดงั น้ี
การสร้างเกมคอมพวิ เตอรเ์ บอ้ื งตน้ 51 ผังงาน Start Read Point Point <5 Point >=1 PRINT PRINT PRINT “ไม่ไดค้ ะแนน” “ได้ 5 คะแนน” Point <10 “ได้ 2 คะแนน” PRINT “ได้ 10 คะแนน” รหัสจำ� ลอง Score_1 read point if point > = 1 then if point< 5 then print “ได้รบั 2 คะแนน” else if point <10 then print “ได้รับ 5 คะแนน” else then print “ไดร้ บั 10 คะแนน” else print “ไมไ่ ด้รับคะแนน” 3. การเขียนโปรแกรม (Programming) เป็นข้ันตอนที่เขยี นโปรแกรมดว้ ยภาษาคอมพิวเตอร์ ภาษาใดภาษาหนง่ึ ขน้ึ มา โดยเลอื กใชภ้ าษาทเี่ หมาะสมกบั ลกั ษณะและประเภทของงาน ตามความสามารถ ของนกั เขียนโปรแกรม 4. การทดสอบและแก้ไขโปรแกรม (Program Testing and Debugging) เป็นขั้นตอน ท่ีตรวจสอบข้อผิดพลาดของโปรแกรม (Bugs) ที่เขียนข้ึนเพ่ือให้การน�ำโปรแกรมไปใช้มีความถูกต้อง แก้ปัญหาได้ตรงและด�ำเนินการแก้ไขข้อผิดพลาด (Debug) นักเขียนโปรแกรมอาจให้บุคคลอื่นได้ลองใช้ โปรแกรม แกไ้ ข และทดสอบจนไมพ่ บขอ้ ผิดพลาด ซึ่งข้อผดิ พลาดเกิดไดจ้ าก 2 สาเหตุหลัก คือ
52 บทที่ 2 ขนั้ ตอนและจริยธรรมในการเขยี นโปรแกรมเกมคอมพิวเตอร์ 4.1) ขอ้ ผดิ พลาดทางไวยากรณภ์ าษา (Syntax Error) หรือ Coding Error เป็นการเขียน ค�ำส่ังไม่ถูกต้องตามหลักการเขียนโปรแกรมของภาษาคอมพิวเตอร์ที่เลือกเขียน เป็นข้อผิดพลาดที่เกิด จากการเขียนโค้ดค�ำส่ัง (Source Code) ไม่ตรงกับไวยากรณ์ (Syntax) เป็นข้อผิดพลาดที่ง่ายต่อการ ตรวจหาและแก้ไข เพราะจะพบข้อผิดพลาดนี้ในระหว่างการแปลภาษาโปรแกรมเป็นรหัสภาษาเคร่ือง ถา้ ตรวจพบตวั แปลภาษาคอมพวิ เตอร์จะแจง้ ใหท้ ราบทันที 4.2) ข้อผิดพลาดทางตรรกะ (Logic Error) เป็นข้อผิดพลาดที่เกิดจากการตีความหมาย ของปัญหาผิดไป เขียนโปรแกรมท�ำงานได้แต่ผลลัพธ์ออกมาไม่ถูกต้อง ซึ่งอาจเกิดข้ึนจากข้ันตอนการ แก้ปัญหาหรือหาค�ำตอบท่ีออกแบบขึ้น เช่น ต้องการผลลัพธ์อย่างหน่ึง แต่ประมวลผลตามโปรแกรม ได้ผลลัพธ์อีกแบบหน่ึง และอาจเป็นข้อผิดพลาดท่ีเกิดจากการออกแบบอัลกอริทึมให้ท�ำงานผิดจาก วัตถปุ ระสงคห์ รือความต้องการ การแก้ไขขอ้ ผดิ พลาดน้ตี ้องท�ำการตรวจโปรแกรมทีละค�ำสัง่ ทีละบรรทดั เพ่อื หาข้อผิดพลาดให้พบ 5. การท�ำเอกสารและบ�ำรุงรักษา (Program Documentation and Maintenance) เปน็ ขัน้ ตอนที่ชว่ ยใหผ้ ูใ้ ชง้ านใช้งานได้อย่างมปี ระสิทธภิ าพ โดยท่ัวไปมี 2 ประเภท คือ ค่มู ือผู้ใช้ (Users Document) บางครัง้ อาจเรยี กว่า Manual เนน้ การใช้งานโปรแกรมเป็นหลกั เช่น วิธีเปิดโปรแกรม วิธี ปอ้ นขอ้ มลู เปน็ ตน้ และอกี หนง่ึ ประเภท คอื คมู่ อื โปรแกรมเมอร์ (Program Document) มรี ายละเอียด โปรแกรม เช่น การรับข้อมูล การพิมพ์ผลลัพธ์ ช่วยในการแก้ไขและพัฒนาโปรแกรม การบ�ำรุงรักษา (Maintenance) เปน็ ขน้ั ตอนทคี่ อยตรวจสอบการใชโ้ ปรแกรมจรงิ เพอื่ แกไ้ ขขอ้ ผดิ พลาดซงึ่ อาจเกดิ ขน้ึ ได้ ในภายหลัง และการพัฒนาโปรแกรมให้ทันสมัยอย่เู สมอ จริยธรรม และจรรยาบรรณทด่ี ีในการเขียน โปรแกรมเกมคอมพวิ เตอร์ วิศวกรรมซอฟต์แวร์เป็นศาสตร์วิศวกรรมด้านซอฟต์แวร์ เป็นการประยุกต์ใช้กระบวนการ ทางวิศวกรรมในการดแู ลการผลติ เร่มิ ตงั้ แต่รวบรวมความต้องการ ตงั้ เป้าหมายระบบ ออกแบบ พฒั นา ตรวจสอบ ประเมินผล ติดตาม จนถึงการคิดราคาซอฟต์แวร์ ซึ่งประยุกต์ความรู้และเทคโนโลยีด้าน วศิ วกรรมศาสตร์ วศิ วกรรมคอมพวิ เตอร์ วทิ ยาการคอมพวิ เตอร์ เทคโนโลยสี ารสนเทศ การบรหิ ารจดั การ โครงการ และสาขาอ่ืนทเี่ ก่ยี วขอ้ ง เพื่อสรา้ งซอฟต์แวรท์ ่ปี ฏบิ ัตติ ามเปา้ หมายในเงอื่ นไขที่ก�ำหนดได้ ทงั้ นี้ ในอาชีพวิศวกรรมซอฟต์แวร์มีหลายสาขาย่อย เช่น โปรแกรมเมอร์ นักออกแบบและพัฒนาเว็บไซต์ ผูด้ แู ลเวบ็ ไซต์ นักวิเคราะหแ์ ละออกแบบระบบ นกั วชิ าการเทคโนโลยีสารสนเทศ ซง่ึ ผู้ประกอบวชิ าชีพ ดา้ นวิศวกรรมซอฟต์แวร์ เรยี กว่า “วิศวกรซอฟต์แวร์”
การสร้างเกมคอมพวิ เตอร์เบอ้ื งต้น 53 สถาบนั วศิ วกรไฟฟา้ และอเิ ลก็ ทรอนกิ ส์ (Institute of Electrical and Electronics Engineers : IEEE) และสมาคมคอมพิวเตอร์ (ACM) ไดก้ �ำหนดจรยิ ธรรมของวศิ วกรซอฟต์แวร์ มวี ัตถปุ ระสงค์ คือ 1. เพ่ือเป็นแนวทางในการประพฤติ ปฏิบัติส�ำหรับวชิ าชีพวศิ วกรรมซอฟตแ์ วรท์ ี่ใช้ร่วมกนั 2. เพอ่ื สรา้ งมาตรฐาน และความนา่ เชื่อถือต่อบุคลากรในวชิ าชีพวิศวกรรมซอฟตแ์ วร์ 3. เพื่อธ�ำรงและรักษาไว้ซึง่ เกียรติของบคุ ลากรในวิชาชีพวศิ วกรรมซอฟตแ์ วร์ 4. เพื่อพัฒนาคุณธรรม จริยธรรมส�ำหรับวิศวกรซอฟต์แวร์ให้เป็นบุคลากรในวิชาชีพวิศวกรรม ซอฟต์แวร์ท่ีมคี ณุ ภาพ โดยมีรายละเอียดจรยิ ธรรมของวศิ วกรซอฟต์แวร์ ท้งั 8 ข้อ ดังน้ี 1. Public - วศิ วกรซอฟตแ์ วร์จะต้องปฏบิ ตั หิ นา้ ทโ่ี ดยค�ำนึงถึงผลประโยชน์ตอ่ สว่ นรวม หมายถงึ วศิ วกรซอฟตแ์ วรต์ อ้ งค�ำนงึ ถงึ งานสว่ นรวมเป็นส�ำคัญ และต้องมคี วามรับผดิ ชอบ ตอ่ งานทไ่ี ดร้ บั มอบหมาย โดยให้ความรว่ มมอื ด้วยความจริงใจ เคารพซงึ่ กนั และกนั และใหเ้ กยี รตคิ วามคดิ การตัดสินใจของส่วนรวม แต่วิศวกรซอฟต์แวร์จะไม่น่ิงเฉยเม่ือมีการเสนอความคิด และพร้อมเสนอ หนทางท่ีน�ำไปสู่ความส�ำเร็จของส่วนรวม ไม่เอนเอียงไปในทิศทางเพ่ือผลประโยชน์ส่วนตัว ท้ังนี้จะต้อง ไมส่ รา้ งความเดือดร้อนให้กับตนเองและสงั คม หากแม้งานสว่ นรวมต้องมีการเสียสละ วิศวกรซอฟตแ์ วร์ ตอ้ งพร้อมเสียสละตนเพอ่ื สว่ นรวม แนวทางปฏิบัติ 1) วิศวกรซอฟตแ์ วร์ทด่ี ีจะตอ้ งใหค้ วามส�ำคญั ต่อผูท้ ม่ี สี ว่ นเกีย่ วข้องทุกภาคสว่ น 1.1) วิศวกรซอฟตแ์ วรจ์ ะต้องปฏบิ ัติงานด้วยความรู้ ความสามารถท่ีมี โดยไมค่ �ำนึงถึง เร่อื งส่วนตวั 1.2) วศิ วกรซอฟต์แวร์ท่ดี ีจะต้องมคี วามพร้อมในการท�ำงานร่วมกบั ผูอ้ ืน่ เสมอ 1.3) วศิ วกรซอฟต์แวรจ์ ะตอ้ งไม่ละทงิ้ งานหรือหนา้ ทท่ี ่ปี ฏบิ ัติ ไม่ท�ำใหผ้ ้อู นื่ ได้รับความ เดือดร้อน 1.4) วศิ วกรซอฟต์แวรจ์ ะตอ้ งรับฟังความคดิ เห็นต่อส่วนรวมด้วยความเตม็ ใจ 1.5) วิศวกรซอฟต์แวร์ไม่ใช้อ�ำนาจของหน้าที่ในการเอาเปรียบ หรือท�ำให้ผู้อื่นได้รับ ความเดือดร้อน 2) วศิ วกรซอฟตแ์ วร์ต้องมจี ิตใจทก่ี ว้างขวางเหนือผู้ใด 2.1) วิศวกรซอฟต์แวร์ต้องมีจิตใจท่ีเอื้อเฟื้อเผื่อแผ่ในการแบ่งปันศาสตร์วิชาต่อทุกคน ทกุ ภาคสว่ น เรมิ่ ตัง้ แตส่ ่วนตน ส่วนรวม เพ่อื ใหเ้ กดิ การน�ำศาสตร์นัน้ ไปใชใ้ นการพัฒนาสงั คม 2.2) วิศวกรซอฟต์แวร์ต้องมีจิตใจแห่งการเสียสละ ยินยอมในการสละผลประโยชน์ แห่งตนเพอื่ ผลประโยชน์สว่ นรวม
54 บทท่ี 2 ขน้ั ตอนและจริยธรรมในการเขยี นโปรแกรมเกมคอมพิวเตอร์ 2.3) วศิ วกรซอฟตแ์ วรต์ อ้ งมจี ติ ทไ่ี มห่ วนั่ เกรงตอ่ การกระท�ำทจ่ี ะท�ำใหส้ งั คม และคนใน ชาติจะไดร้ ับประโยชน์ 2.4) วศิ วกรซอฟตแ์ วรต์ อ้ งรว่ มใจปอ้ งกนั และตอ่ ตา้ นซอฟตแ์ วรท์ อ่ี าจเปน็ ภยั ตอ่ สว่ นรวม 3) คำ� นึงถึงความปลอดภัยของวิศวกรซอฟต์แวรท์ ุกคนเปน็ สำ� คัญ 3.1) การท�ำงานควรแบง่ เป็น 2 กะ คือ กะเช้าและกะดกึ เพ่อื บรรลเุ ป้าหมายในเวลาท่ี ก�ำหนด กรณที �ำงานเขา้ กะดกึ ควรเปน็ บคุ คลทพ่ี รอ้ มจะรบั มอื กบั การเกดิ ภยั พบิ ตั แิ ละอบุ ตั เิ หตทุ ไี่ มค่ าดฝนั 3.2) เมื่อมีการท�ำงานอย่างหักโหมและหนักหน่วงย่อมเสียสุขภาพ ควรให้ความส�ำคัญ เรือ่ งสุขภาพของสมาชกิ ทกุ คนเป็นส�ำคัญ 3.3) เมื่อมีวิศวกรซอฟต์แวร์เข้ามาใหม่ควรมีการตรวจสอบประวัติท่ีเกี่ยวข้องทาง กฎหมาย เพือ่ ผลประโยชนข์ ององค์กร 2. Client and Employer - วศิ วกรซอฟตแ์ วรจ์ ะตอ้ งคำ� นงึ ถงึ ลกู คา้ และนายจา้ งเปน็ หลกั หมายถึง วิศวกรซอฟต์แวร์ต้องท�ำให้ดีที่สุดที่ท�ำได้ เพื่อรักษาผลประโยชน์ของลูกค้าและ นายจ้างเปน็ หลัก แนวทางปฏบิ ัติ 1) วิศวกรซอฟต์แวร์ต้องให้บริการในส่วนงานที่รับผิดชอบอย่างซ่ือสัตย์ และตรงไปตรงมา ตามความรู้ ความสามารถของตน 2) วิศวกรซอฟต์แวรต์ ้องไมใ่ ชซ้ อฟตแ์ วรใ์ นทางมชิ อบ ผดิ กฎหมาย หรอื ผิดจริยธรรม 3) วิศวกรซอฟต์แวร์สามารถน�ำข้อมูลของลูกค้าไปใช้ได้ก็ต่อเมื่อได้รับอนุญาต และลูกค้า รับรเู้ กยี่ วกบั การน�ำข้อมูลของลูกค้าไปใชง้ าน 4) วิศวกรซอฟต์แวร์จะต้องตรวจสอบความถูกต้องของเอกสารตามหลักการทางวิศวกรรม ซอฟต์แวรก์ อ่ นสง่ มอบลกู คา้ 5) รวบรวมเอกสารที่เก่ียวข้องให้ลูกค้าทราบทันทีเม่ือเกิดการเปลี่ยนแปลงกับโครงการ ไม่ว่าจะเป็นปัญหาที่เกิดขึ้นในการท�ำงาน การเพิ่มทรพั ยากรในการพฒั นา ความเส่ียงที่ท�ำให้โครงการ ลม้ เหลวหรอื มคี วามผดิ เก่ยี วกับทรัพยส์ นิ ทางปญั ญา 6) วิศวกรซอฟต์แวร์ต้องรายงานผลกระทบหรือความเสี่ยงท่ีอาจเกิดข้ึนกับสังคมให้ลูกค้า รบั ทราบถึงปญั หา 7) วิศวกรซอฟต์แวร์ไม่ควรรับงานจากผู้จ้างรายอ่ืนที่อาจส่งผลกระทบกับการท�ำงานหลัก ของผูว้ ่าจ้างรายปจั จบุ ัน 8) วศิ วกรซอฟตแ์ วรไ์ มเ่ สนอสงิ่ ทไี่ มจ่ �ำเปน็ ใหแ้ กล่ กู คา้ เพอ่ื ผลประโยชนข์ องตวั เองหรอื ผอู้ น่ื และไมเ่ รียกร้องผลประโยชน์เกนิ ความจ�ำเปน็ จากลูกคา้
การสรา้ งเกมคอมพิวเตอรเ์ บอื้ งต้น 55 3. Product - วิศวกรซอฟตแ์ วร์จะต้องผลติ ผลงานตามหลกั สูงสุดของหลักวิชาการ หมายถึง วิศวกรซอฟต์แวร์ต้องมีความรู้ความสามารถในสาขาวิชาที่เกี่ยวข้อง โดยควรมี ความช�ำนาญหรือประสบการณ์ ท่ีจะสามารถน�ำไปปฏิบตั ิเพ่ือเขา้ สู่กระบวนการพัฒนาซอฟตแ์ วร์ได้อยา่ ง มีประสทิ ธภิ าพ และท�ำใหผ้ ลงานมีคุณภาพสูงสดุ แนวทางปฏบิ ตั ิ 1) วศิ วกรซอฟตแ์ วร์ ควรมพี นื้ ฐานความรู้ ความช�ำนาญหรอื ประสบการณเ์ กยี่ วกบั กระบวนการ พฒั นาซอฟต์แวร์อย่างเพียงพอ เพ่อื ใหไ้ ดผ้ ลงานท่ีมีคณุ ภาพ 2) วิศวกรซอฟต์แวร์ ต้องรักษาคุณภาพของซอฟต์แวร์ท่ีพัฒนาขึ้น เพ่ือให้ซอฟต์แวร์เกิด ความยืดหยนุ่ และสามารถใชง้ านไดอ้ ย่างมีคณุ ภาพ 3) วิศวกรซอฟต์แวร์ ต้องจัดการการวางแผนในการด�ำเนินงาน เช่น การศึกษาวงจรการ พัฒนาซอฟตแ์ วร์ (Software Develop Life Cycle: SDLC) 4) วิศวกรซอฟต์แวร์ ต้องม่ันใจในตนเองว่ามีคุณสมบัติท่ีเหมาะสม เช่น ความสามารถ และประสบการณ์ท่เี พียงพอตอ่ การท�ำงานส�ำหรบั โครงการน้ัน ๆ 5) วิศวกรซอฟต์แวร์ ตอ้ งมกี ารค�ำนึงถึงคา่ ใชจ้ ่ายของโครงการและตารางเวลาทเ่ี หมาะสม 6) วิศวกรซอฟต์แวร์ ต้องมีความเข้าใจข้อก�ำหนดรายละเอียดซอฟต์แวร์ (Software Specification) 7) วิศวกรซอฟต์แวร์ ตอ้ งมคี วามเข้าใจในเคร่ืองมือการพัฒนาซอฟตแ์ วร์และเลือกเครื่องมือ ใหเ้ หมาะสมกบั การพฒั นาซอฟต์แวร์ 8) วิศวกรซอฟต์แวร์ ต้องมีความรับผดิ ชอบตอ่ โครงการพัฒนาซอฟต์แวรข์ องตนเอง เพ่อื ท่ี จะให้ซอฟต์แวร์ส�ำเรจ็ เป็นไปตามเปา้ หมายหรือวัตถปุ ระสงค์ 4. Judgment - วิศวกรซอฟต์แวร์ต้องตัดสินใจอย่างอิสระ เป็นตัวของตัวเอง ยึดมั่นใน หลักวิชาการ หมายถึง วิศวกรซอฟต์แวร์ต้องมีความคิดเป็นของตนเอง โดยอยู่บนหลักการและพ้ืนฐาน ของเหตแุ ละผล โดยไรซ้ ่ึงความอคติในการตัดสินใจ ไมท่ �ำใหต้ นเองและผ้อู นื่ เดอื ดรอ้ น แนวทางปฏบิ ตั ิ 1) วิศวกรซอฟตแ์ วร์มีอิสระทางความคดิ 2) วศิ วกรซอฟตแ์ วรจ์ ะตอ้ งไม่ถอื ทฐิ เิ ป็นทต่ี ง้ั 3) วิศวกรซอฟต์แวร์จะพัฒนาซอฟต์แวร์เป็นของตนเอง โดยไม่น�ำซอฟต์แวร์ของผู้อ่ืนมา ท�ำซ้�ำหรือดดั แปลง เวน้ แตซ่ อฟต์แวร์นน้ั มีสญั ญาอนญุ าตแบบโอเพนซอร์ส 4) วิศวกรซอฟต์แวร์จะต้องสร้างสรรค์ผลงานของตน โดยปราศจากการควบคุมทางความ คิดจากบุคคลอ่นื
56 บทที่ 2 ขนั้ ตอนและจรยิ ธรรมในการเขียนโปรแกรมเกมคอมพวิ เตอร์ 5) วศิ วกรซอฟต์แวรต์ ้องไม่ใช้สิทธห์ิ รืออสิ ระทม่ี ี ให้เกดิ ความเสียหายต่อตนเองและผูอ้ ื่น 5. Management - วศิ วกรซอฟตแ์ วรจ์ ะตอ้ งเผยแพรก่ ารรกั ษาจรยิ ธรรม ในฐานะผบู้ รหิ าร หรอื หวั หน้า หมายถึง ผู้บริหารหรือหัวหน้าโครงการซอฟต์แวร์ควรน�ำจริยธรรมไปเผยแพร่ในองค์กร เพื่อเป็นกรอบในการก�ำหนดแนวทางการประพฤติปฏิบัติส�ำหรับวิศวกรซอฟต์แวร์ โดยปลูกฝังให้วิศวกร ซอฟตแ์ วรด์ �ำเนนิ งานตง้ั อยบู่ นพนื้ ฐานของจรรยาบรรณวชิ าชพี วศิ วกรรมซอฟตแ์ วร์ และใชอ้ �ำนาจหนา้ ทดี่ ว้ ย ความชอบธรรม แนวทางปฏิบัติ 1) ผบู้ รหิ ารตอ้ งมน่ั ใจวา่ ในการพฒั นาซอฟตแ์ วรม์ กี ระบวนการจดั การซอฟตแ์ วรท์ มี่ คี ณุ ภาพ 2) ผู้บริหารต้องมั่นใจว่าวิศวกรซอฟต์แวร์ของตนมีกระบวนการพัฒนาซอฟต์แวร์ที่เป็น มาตรฐานก่อนทีผ่ ลงานจะถูกส่งถึงมือลกู คา้ หรอื นายจา้ ง 3) ผู้บริหารต้องม่ันใจว่าวิศวกรซอฟต์แวร์ของตนรับรู้และเข้าใจนโยบาย ข้อตกลงของ ลกู ค้าหรือนายจา้ ง เชน่ การรกั ษาความลับของลกู ค้า 4) ผู้บริหารโครงการต้องสามารถมอบหมายงานอย่างเหมาะสมตามความรู้ ความสามารถ และประสบการณ์ของวิศวกรซอฟต์แวร์ 5) ผู้บริหารโครงการต้องไม่มอบหมายงานอื่นที่ไม่เก่ียวข้องกับการพัฒนาซอฟต์แวร์ของ วศิ วกรซอฟตแ์ วร์ 6. Profession - วิศวกรซอฟต์แวรจ์ ะต้องยึดม่นั ในคุณธรรม และรักษาชือ่ เสียงในวิชาชพี โดยค�ำนงึ ถึงผลประโยชน์ส่วนรวม หมายถึง วิศวกรซอฟต์แวร์ต้องซื่อสัตย์ต่อตนเอง องค์กรและหน้าที่ ปฏิบัติตนอยู่ในกฎ ระเบียบข้อบังคับของกฎหมาย และยึดมั่นคุณธรรม ศีลธรรม ไม่ปฏิบัติตนให้เป็นท่ีเดือดร้อนและ เส่ือมเสียชื่อเสียงต่อองค์กร รวมท้ังให้เกียรติและอ้างถึงบุคคลท่ีถูกน�ำผลงานมาใช้ในผลิตภัณฑ์หรือ ผลงานของตน แนวทางปฏบิ ตั ิ 1) วิศวกรซอฟต์แวร์ต้องประพฤติปฏิบัติอยู่ในกฎ กติกา กรอบและแนวทางปฏิบัติของ สงั คม 2) วศิ วกรซอฟต์แวรต์ อ้ งผลิตผลงานท่ีส่งเสริม พัฒนา และเปน็ ประโยชนต์ อ่ ส่วนรวม 3) วิศวกรซอฟต์แวร์ห้ามน�ำข้อมูล ความลับ ขององคก์ รหรอื เจา้ ของผลงานไปเผยแพร่ต่อ สาธารณะหรือเพื่อประโยชน์สว่ นตน โดยไมไ่ ดร้ ับอนญุ าตจากองคก์ รหรอื เจา้ ของผลงาน
การสร้างเกมคอมพวิ เตอรเ์ บือ้ งตน้ 57 4) วิศวกรซอฟต์แวร์ไม่สร้างความเดือดร้อน เสียหาย ต่อองค์กรหรือเจ้าของผลงานโดย เจตนา ทั้งทางตรงและทางอ้อม 5) วิศวกรซอฟตแ์ วร์หา้ มน�ำผลงาน ข้อมูล ของผู้อนื่ มาแอบอ้างเปน็ ของตนเอง 6) วิศวกรซอฟต์แวร์ต้องอ้างถึงเจ้าของผลงาน และแนวทางการปฏิบัติที่น�ำมาใช้ทุกคร้ัง เพ่ือเป็นเกยี รตแิ ละเป็นการสนับสนุนแนวคดิ ทเ่ี ปน็ ประโยชน์ 7) วิศวกรซอฟต์แวร์จะต้องใช้ชุดซอฟต์แวร์ท่ีถูกต้องตามกฎระเบียบข้อบังคับของ ซอฟตแ์ วร์นั้น กรณีทซ่ี อฟต์แวรด์ งั กลา่ วมลี ิขสิทธ์ิ 8) วิศวกรซอฟตแ์ วร์จะตอ้ งท�ำงานตามขอบเขตหรือข้อตกลงของซอฟตแ์ วร์ ตามทไี่ ดต้ กลง ไว้กับเจา้ ของงาน โดยไมม่ กี ารเอาเปรียบเจา้ ของงานหรอื ผใู้ ช้งานดว้ ยวิธกี ารตา่ ง ๆ 9) วศิ วกรซอฟตแ์ วรจ์ ะตอ้ งปฏบิ ตั ติ นดว้ ยความซอื่ สตั ยส์ จุ รติ โดยมคี วามรบั ผดิ ชอบตอ่ หนา้ ท่ี ทีไ่ ด้รบั มอบหมาย 10) วิศวกรซอฟต์แวร์จะต้องตรวจสอบคุณภาพของผลงานให้ละเอียดและถูกต้อง เพ่ือ เป็นการป้องกันความเสยี หายและคน้ หาข้อผิดพลาดในเบ้อื งต้น 11) วิศวกรซอฟต์แวร์จะไม่น�ำใบประกอบวิชาชีพของตนเองหรือผู้อ่ืนไปใช้ในทางท่ีผิด กฎหมาย หรอื หาประโยชนใ์ นทางมิชอบ 7. Colleagues - วศิ วกรซอฟต์แวร์จะตอ้ งใหค้ วามเปน็ ธรรม และสนับสนุนเพอื่ นรว่ มงาน หมายถงึ วศิ วกรซอฟตแ์ วรต์ อ้ งมคี วามเทา่ เทยี มกนั และตอ้ งเหน็ แกป่ ระโยชนส์ ว่ นรวมเปน็ หลกั ทง้ั แกเ่ พอื่ นรว่ มงาน แกส่ งั คม อีกทั้งวศิ วกรซอฟต์แวรย์ ังต้องช่วยเหลือเพื่อนร่วมงาน เพอื่ ท�ำใหง้ านส�ำเรจ็ ลุล่วงไปไดด้ ้วยดีและมีประสิทธิภาพสงู สุด แนวทางปฏิบตั ิ 1) วิศวกรซอฟต์แวร์จะต้องพัฒนาความรู้ท่ีได้มา และแบ่งปันความรู้ ประสบการณ์กับ เพ่อื นรว่ มงาน 2) วิศวกรซอฟต์แวร์ควรให้ก�ำลังใจเพ่ือนร่วมงานอย่างสม�่ำเสมอ และไม่ควรพูดบ่ันทอน จิตใจกับเพอ่ื นร่วมงาน 3) วศิ วกรซอฟตแ์ วรจ์ ะตอ้ งแสดงความคดิ เห็น ขอ้ เสนอแนะอย่างเปน็ กลาง 4) วศิ วกรซอฟตแ์ วรจ์ ะตอ้ งรบั ฟงั ยอมรบั ความคดิ เหน็ และปญั หาทเ่ี กดิ ขน้ึ ของเพอื่ นรว่ มงาน 8. Self - วิศวกรซอฟต์แวรจ์ ะต้องพฒั นาตัวเองอยู่เสมอ หมายถงึ วศิ วกรซอฟตแ์ วรค์ วรพฒั นาตนเอง โดยสรา้ งความสามารถของตนเองใหม้ ศี ักยภาพ เพิม่ ขึน้ และพัฒนาความสามารถในดา้ นอืน่ ๆ ที่เก่ยี วข้อง และมีส่วนร่วมในการส่งเสริมการเรียนรู้ของ ตนเองเกี่ยวกับวิธีการปฏิบัติของวิชาชีพวิศวกรรมซอฟต์แวร์
58 บทท่ี 2 ขั้นตอนและจริยธรรมในการเขยี นโปรแกรมเกมคอมพิวเตอร์ แนวทางปฏิบัติ 1) วิศวกรซอฟต์แวร์ควรพิจารณา และพัฒนาความรู้ของตนเองเก่ียวกับข้อก�ำหนดของ ความต้องการ การวิเคราะห์ การออกแบบ กระบวนการพัฒนา การบ�ำรุงรักษา และการทดสอบ ซอฟต์แวรร์ ว่ มกับเอกสารท่ีเกยี่ วขอ้ ง 2) วศิ วกรซอฟตแ์ วรค์ วรปรบั ปรงุ ความสามารถเพอ่ื สรา้ งความปลอดภยั และความนา่ เชอ่ื ถอื ให้กับซอฟต์แวร์ รวมทั้งความสามารถในการสร้างซอฟต์แวร์ที่มีคุณภาพ มีประโยชน์เหมาะสมกับราคา และพฒั นาในเวลาท่ีเหมาะสม 3) วิศวกรซอฟตแ์ วร์ควรปรับปรงุ ความสามารถในการผลิตซอฟต์แวร์ใหม้ คี วามถกู ตอ้ ง 4) วศิ วกรซอฟตแ์ วรค์ วรพฒั นามาตรฐานความรทู้ เี่ กย่ี วขอ้ ง รวมทงั้ ความรทู้ างดา้ นกฎหมาย ที่เก่ยี วกบั การด�ำเนนิ งานพฒั นาซอฟตแ์ วร์ 5) วศิ วกรซอฟตแ์ วรค์ วรหาแนวทางในการปรบั ปรงุ แกไ้ ขขอ้ บกพรอ่ งหรอื ขอ้ ผดิ พลาดทเ่ี กดิ ขน้ึ เพือ่ น�ำไปประยกุ ตใ์ ชใ้ นการด�ำเนนิ งานครง้ั ถดั ไป จรรยาบรรณวิชาชีพ จรรยาบรรณตามพจนานกุ รมไทย ฉบบั ราชบณั ฑติ ยสถาน พทุ ธศกั ราช 2525 หมายถงึ “ประมวล ความประพฤติผปู้ ระกอบอาชพี การงานแตล่ ะอย่าง ก�ำหนดขึน้ เพื่อรกั ษาและสง่ เสรมิ เกยี รติคณุ ชอ่ื เสยี ง และฐานะของสมาชกิ ” ซงึ่ การมจี รรยาบรรณในอาชพี และการท�ำงาน สง่ ผลใหง้ านทกุ อยา่ งบรรลวุ ตั ถปุ ระสงค์ จรรยาบรรณวิชาชีพ คอื ความประพฤติที่ผู้ประกอบวิชาชีพ ต้องปฏบิ ตั ิเปน็ ไปตามแนวทาง อยา่ งถกู ตอ้ งเพอ่ื รกั ษาเกยี รติ และสถานะของวชิ าชพี นนั้ จรรยาบรรณวชิ าชพี เปน็ สงิ่ ส�ำคญั วชิ าชพี จะตอ้ ง มอี งค์กรรองรับ มกี ารก�ำหนดมาตรฐานความประพฤตขิ องผทู้ อ่ี ยใู่ นวชิ าชพี นนั้ ๆ ซ่ึงทม่ี าของจรรยาบรรณ คือ รปู แบบหนง่ึ ของจรยิ ธรรมในวงการวชิ าชีพ เปน็ ขอ้ ก�ำหนดกฎเกณฑ์ให้ผ้ปู ระกอบวิชาชีพยดึ ถือปฏิบัติ มปี ระกาศติ บงั คบั ในระดบั “พงึ ” ทม่ี ผี ลสมั ฤทธห์ิ รอื เปา้ หมายของจรรยาบรรณและศักด์ิศรีของผู้ประกอบ วชิ าชพี โดยมจี ดุ มงุ่ หมายเพอื่ คนและเพอื่ งาน ทง้ั นใี้ นการก�ำหนดจรรยาบรรณนน้ั มวี ตั ถปุ ระสงค์ 3 ประการ คือ 1) เป็นแนวทางให้ผู้ประกอบวิชาชีพยึดถือปฏิบัติอย่างถูกต้อง 2) เพื่อให้วิชาชีพคงฐานะ ได้รับ การยอมรบั และยกยอ่ งจากสังคม 3) เพอื่ ผดงุ เกียรตยิ ศและศักด์ศิ รแี หง่ วชิ าชีพ โดยที่จรรยาบรรณในวิชาชพี วศิ วกรซอฟต์แวร์ มอี งคป์ ระกอบดงั นี้ จรรยาบรรณตอ่ ตนเอง กลา่ วคอื วศิ วกรซอฟตแ์ วรต์ อ้ งมคี วามประพฤตชิ อบ มคี วามซอื่ สตั ยส์ จุ รติ ตอ้ งบงั คับตนเองให้ประพฤติแตส่ ง่ิ ทถ่ี กู ตอ้ งดีงาม ตอ้ งมคี วามรับผดิ ชอบ ต้ังใจท�ำงานให้ส�ำเร็จ ไมล่ ะทงิ้
การสร้างเกมคอมพิวเตอรเ์ บอื้ งต้น 59 งานทไ่ี ดร้ บั มอบหมาย ไมเ่ ปดิ เผยสง่ิ ทเี่ ปน็ ความลบั ในงานทท่ี �ำ ตอ้ งมเี หตผุ ล คดิ วเิ คราะหใ์ นการแกไ้ ขปญั หา ตอ้ งมคี วามใฝร่ ู้ ตดิ ตามขา่ วสารตา่ ง ๆ เพอ่ื น�ำความรมู้ าพฒั นาตนเอง มคี วามรอบคอบในการพฒั นาซอฟตแ์ วร์ จรรยาบรรณต่อผ้รู ่วมงาน ต้องท�ำงานเป็นทีมร่วมกับผู้อ่ืนได้ ตงั้ มน่ั ในความถกู ต้อง มเี หตุผล ไมค่ ดั ลอกผลงานของผอู้ นื่ มาเปน็ ของตน ใหค้ วามยกย่อง นับถอื ผ้รู ว่ มงาน ผรู้ ว่ มอาชพี ทกุ ระดบั ทม่ี คี วามรู้ ความสามารถ ความประพฤติดี รักษาและแสวงหามิตรภาพระหวา่ งผรู้ ่วมงานและผู้รว่ มอาชีพ จรรยาบรรณต่อวิชาชีพ ต้องแสดงความสามารถในทางสร้างสรรค์ ให้ความร่วมมือในการ ปฏิบตั ิหนา้ ทีเ่ พ่ือส่งเสรมิ เกียรตคิ ณุ ของวชิ าชีพ จรรยาบรรณตอ่ สงั คม ปฏิบตั ิหนา้ ที่เปน็ แบบอยา่ งท่ดี ตี อ่ สังคม ไมร่ บั ทรพั ยส์ นิ หรอื ประโยชนใ์ ด โดยมชิ อบดว้ ยกฎหมาย ใชค้ วามสามารถในทางทถี่ กู ต้องและเปน็ ประโยชน์ จรรยาบรรณตอ่ ผรู้ บั บรกิ าร รบั ฟงั ความคดิ เหน็ ขอ้ เสนอแนะ แลกเปลยี่ นแนวความคดิ มที ศั นคติ ท่ีดีระหว่างบุคคล เครือข่าย องคก์ รที่เกย่ี วขอ้ ง เคารพในสิทธิเสรีภาพของผู้อ่ืนเสมอ ปฏิบัติหน้าท่ีด้วย ความโปร่งใส ยตุ ิธรรม เปดิ โอกาสใหผ้ ู้รบั บริการเขา้ มามีส่วนรว่ มตรวจสอบได้ นอกจากน้ีทางสถาบัน IEEE และสมาคมคอมพิวเตอร์ยังได้ก�ำหนด 4 กรอบความรู้ส�ำหรับ นักวิศวกรซอฟต์แวร์ ดงั น้ี 1. Confidentially - เกบ็ ความลับในงานท่รี ับผิดชอบ 2. Competence - ท�ำงานด้านทีต่ นเองถนดั ท่สี ุด ปฏเิ สธงานในส่วนทไี่ มส่ ามารถท�ำได้ 3. Intellectual - ไม่ละเมิดลิขสิทธ์แิ ละสทิ ธทิ างปญั ญา 4. Computer Misuse - ใช้ความถนดั ทางด้านคอมพวิ เตอรอ์ ยา่ งถูกวตั ถปุ ระสงค์ มาตรฐานในการพัฒนาซอฟตแ์ วร์ มาตรฐานท่ีก�ำหนดและควบคุมโดยองค์การนานาชาติเพอ่ื ระบบมาตรฐาน หรอื ISO ยอ่ มาจาก ค�ำว่า International Organization for Standardization ได้ก�ำหนดมาตรฐานเกี่ยวกับการพฒั นา ซอฟตแ์ วร์ ดังตวั อย่าง ISO15504 : Software Process Improvement and Capability Evaluation (SPICE) เป็นมาตรฐานสากลดา้ นการประเมนิ ค่าการปรบั ปรุงและด�ำเนนิ การพฒั นาซอฟต์แวร์ เพอ่ื ระบถุ ึงจุดแข็ง และจุดอ่อนขององค์กรส�ำหรับการวางแผนพัฒนาปรับปรุงการท�ำงานให้เกิดประสิทธิภาพ และส�ำเร็จ ตามเป้าหมายท่ีได้วางไว้
60 บทที่ 2 ข้ันตอนและจรยิ ธรรมในการเขยี นโปรแกรมเกมคอมพิวเตอร์ ISO29110 : Software Engineering Standard for Very Small Entity (VSE) เปน็ มาตรฐาน วิศวกรรมซอฟตแ์ วร์ส�ำหรับองคก์ รขนาดกลางและเล็ก เพอ่ื การวางแผนควบคุมระบบงานใหเ้ กดิ ผลงานท่ี ตรงตามความต้องการ ประหยัดทรัพยากร และเสรจ็ สน้ิ สมบูรณต์ ามก�ำหนด ISO27001 : Information Security Management System เปน็ มาตรฐานสากลในการบรหิ าร จดั การความม่ันคง ปลอดภัยของข้อมูล เพ่ือให้ข้อมูลส�ำคัญขององค์กรเป็นความลับ ถูกต้องและพรอ้ ม ใชง้ านเสมอ ISO20000 : IT Services Management System เปน็ มาตรฐานสากลในการบริหารจดั การ บรกิ ารดา้ นไอที (IT) เพื่อใหบ้ รกิ ารดา้ นไอทมี ปี ระสทิ ธิภาพ และผรู้ ับบรกิ ารจากหน่วยงานไอทีขององคก์ ร นน้ั ไดร้ บั ความพึงพอใจสูงสดุ ISO9001 : Quality Management System เปน็ มาตรฐานสากลในการบรหิ ารจดั การคณุ ภาพ ขององคก์ ร เพื่อให้การท�ำงานต่าง ๆ เปน็ ระบบระเบยี บ ตรวจสอบได้ และสรา้ งความพงึ พอใจให้แก่ลกู คา้ รวมทั้งผเู้ กี่ยวขอ้ ง ISO14750 : Open Distributed Processing เปน็ มาตรฐานดา้ นเทคโนโลยสี ารสนเทศเพอ่ื การ ประมวลผลแบบกระจายตัวมาตรฐานเปิด CMMI : Capability Maturity Model Integration เปน็ แนวทางในการปรบั ปรุงกระบวนการ พัฒนาซอฟต์แวร์อย่างมีคุณภาพมาตรฐาน สามารถลดต้นทุน ประหยัดเวลา และเพิ่มประสิทธิภาพใน การท�ำงาน ISO15504 : Software Process Improvement and Capability Evaluation (SPICE) คือ มาตรฐานสากลซ่ึงใช้ส�ำหรับประเมินค่าการด�ำเนินการพัฒนาซอฟต์แวร์ซ่ึงเผยแพร่ครั้งแรก ในปี ค.ศ. 1998 ซึง่ ตอ่ มาถูกเผยแพร่อกี ครั้งโดยเป็นมาตรฐาน ISO/IEC 15504 ในปี ค.ศ. 2003/2005 ถกู กอ่ ตง้ั ขนึ้ ในปี ค.ศ. 1993 โดยมวี ตั ถปุ ระสงคเ์ รม่ิ ตน้ เพอื่ เนน้ เฉพาะกบั กระบวนการการพฒั นาซอฟตแ์ วร์ แต่ปัจจุบันได้ขยายให้ครอบคลุมถึงกระบวนการที่เก่ียวข้องท้ังหมดในธุรกิจซอฟต์แวร์ เช่น การบริหาร โครงการ การจัดการ การติดตั้ง และการประกันคุณภาพ ซ่ึง ISO15504 ใช้ประเมินค่าการด�ำเนินงาน เพ่ือระบุถึงจุดแข็งและจุดอ่อนขององค์กร และใช้ข้อมูลท่ีได้ท�ำการวางแผนพัฒนา ปรับปรุงบนพ้ืนฐาน ของผลการประเมินคา่ การด�ำเนนิ การ ความสามารถ และเป้าหมายขององคก์ ร องคก์ รในประเทศไทยทผี่ า่ นมาตรฐาน ISO/IEC15504 ได้แก่ บริษัท ล็อกซเลย่ ์ จ�ำกดั (มหาชน) บริษัท เอ็ม เอฟ อี ซี จ�ำกัด (มหาชน) บริษัท โตโยต้า ทูโช อิเล็คทรอนิคส์ (ไทยแลนด์) จ�ำกัด และ บรษิ ทั ไทยคอม แมเนจเม้นท์ กรปุ๊ จ�ำกดั
การสรา้ งเกมคอมพวิ เตอร์เบ้ืองตน้ 61 โครงสรา้ งของมาตรฐาน แสดงดงั ตาราง Capability Level ISO/IEC 15504 Capability Level Description Level 0 Incomplete Level 1 Performed หาความผดิ พลาดของกระบวนการ เพอ่ื ลดและป้องกันความลม้ เหลวของ Level 2 Managed ผลลพั ธ์ของกระบวนการ Level 3 Established ก�ำหนดขอบเขตและวตั ถุประสงค์ของกระบวนการ เพอื่ ให้ผลลัพธ์ของ กระบวนการอยูภ่ ายใตข้ อบเขตและวตั ถุประสงคท์ ่ีวางไว้ Level 4 Predictable เปน็ การควบคุมและติดตามการท�ำงานของกระบวนการ เพ่ือใหเ้ ปน็ ไปตาม Level 5 Optimizing ขนั้ ตอนและมาตราฐานท่วี างแผนไว้ และได้ผลลัพธต์ ามที่ต้องการ ควบคมุ และจดั การข้นั ตอนการด�ำเนินงานของกระบวนการโดยยดึ หลัก ของกระบวนการทางด้านวิศวกรรมซอฟตแ์ วรท์ ี่ดี โดยมีมาตรฐานเป็นที่ ยอมรบั และบรรลเุ ป้าหมายของกระบวนการ ก�ำหนดการด�ำเนนิ การของกระบวนการให้ด�ำเนนิ ไปและส�ำเรจ็ ตาม เป้าหมายท่ไี ด้ก�ำหนดไว้ เปน็ การเพมิ่ ประสิทธภิ าพของผลิตภัณฑเ์ พอ่ื ตอบสนองความตอ้ งการทาง ธรุ กจิ ทง้ั ในปจั จบุ นั และอนาคต และมกี ระบวนการ Achieves Repeatability ในการร่วมกันก�ำหนดเปา้ หมายทางธรุ กิจ ระดบั การพิจารณาความส�ำเรจ็ ของมาตรฐาน Grade Rating Achievements ระบบสมบูรณ์หรือประสิทธิภาพเกอื บเสรจ็ F (Fully Achieved) 86 - 100% สมบรู ณ์ ประสบความส�ำเร็จมาก ระบบมคี วามส�ำเรจ็ แตบ่ างสว่ นมปี ระสทิ ธภิ าพตำ�่ L (Largely Achieved) 51 - 85% ส�ำเร็จบางส่วน ไม่มกี ารควบคมุ กระบวนการ ประสบความส�ำเร็จพอ สมควร ส�ำเรจ็ นอ้ ยหรอื ไมส่ �ำเร็จ P (Partially Achieved) 16 - 50% ประสบความส�ำเรจ็ บางส่วน N (Not Achieved) 0 - 15% ไมส่ �ำเร็จ
62 บทท่ี 2 ข้ันตอนและจรยิ ธรรมในการเขยี นโปรแกรมเกมคอมพวิ เตอร์ ISO29110 : Software Engineering Standard for Very Small Entity (VSE) คือ มาตรฐานวิศวกรรมซอฟต์แวร์ส�ำหรับองค์กรขนาดกลางและเล็ก เพ่ือการวางแผนควบคุม ระบบงานให้เกิดผลงานที่ตรงตามความต้องการ ประหยัดทรัพยากร และเสร็จสิ้นสมบูรณ์ตามก�ำหนด เป็นมาตรฐานท่ีมุ่งเน้นให้การรับรองคุณภาพการบริหารงานหรือผลิตภัณฑ์ซอฟต์แวร์ให้แก่ หน่วยงาน/ ผปู้ ระกอบการขนาดเลก็ ทมี่ ผี รู้ ว่ มงานไมเ่ กนิ 25 คน เพราะมาตรฐานนก้ี �ำหนดมาเพอ่ื สรา้ งบทบาทควบคมุ คุณภาพกระบวนการผลติ ซอฟตแ์ วรท์ ้ังทางด้านการบรหิ ารงาน และทางดา้ นเทคนิคให้กบั ผู้ประกอบการ ขนาดเล็กและขนาดย่อม ยังเป็นมาตรฐานท่ีสามารถลดต้นทุนในการบริหารและจัดการกระบวนการ ควบคุมคุณภาพการผลิตท่ียังไม่สูงมาก ซึ่งท�ำให้เกิดประโยชน์ต่อองค์กรที่น�ำไปใช้ท้ังภายในองค์กรเอง ระหว่างองค์กร จะท�ำให้ข้อมูลไปในทิศทางเดียวกัน บริหารโครงการได้เสร็จสิ้นตามความต้องการของ ลูกค้า มีรูปแบบของการสรุปความต้องการที่ชัดเจน เพื่อลดข้อขัดแย้งและประเด็นปัญหา ทุกคนใน องค์กรเข้าใจบทบาทและหน้าท่ีความรับผิดชอบของตนเอง สามารถวิเคราะห์และประเมินระยะเวลาใน การด�ำเนินโครงการได้แม่นย�ำ และลดความเสยี่ งทอ่ี าจเกดิ ขน้ึ กบั โครงการได้ ท้ังนี้ยังสร้างความเช่ือม่ันให้ กับลกู คา้ และทมี งานในองคก์ รดว้ ย ISO27001 : Information Security Management System คือ มาตรฐานสากลในการบริหารจัดการความม่ันคง ปลอดภัยของข้อมูล เพ่ือให้ข้อมูลส�ำคัญ ขององค์กรเป็นความลับ ถูกต้อง และพร้อมใช้งานเสมอ เปน็ แนวทางหรือวิธีการเก่ียวกับความเสีย่ ง ดา้ นสารสนเทศเพอื่ การก�ำหนดนโยบาย และกระบวนการท�ำงาน รวมทงั้ เพอ่ื เลอื กการควบคมุ ทเี่ หมาะสม ในการบริหารความเสี่ยงด้วย เป็นมาตรฐานเชิงระบบที่เน้นการปฏิบัติ สามารถน�ำไปใช้อ้างอิงเพ่ือการ ประเมนิ และขอรับการรบั รองมาตรฐานตอ่ ไปได้ รายละเอียดในภาพรวมของ ISO27001 ประกอบด้วย 6 กระบวนการ คือ 1) ก�ำหนดนโยบายดา้ นความปลอดภยั 2) ก�ำหนดขอบเขตของระบบบริหารความปลอดภัยสารสนเทศ (ISMS) 3) รายละเอียดการประเมินความเสีย่ ง 4) การบรหิ ารความเสี่ยง 5) เลอื กวัตถุประสงคใ์ นการควบคมุ และวิธีการควบคมุ ทีจ่ ะน�ำไปใชจ้ ริง 6) จัดเตรียมค�ำอธบิ ายส�ำหรบั การปฏิบัตงิ านจริง
การสร้างเกมคอมพิวเตอรเ์ บอื้ งต้น 63 แบบทดสอบและกิจกรรม การฝกึ ทักษะ บทที่ 2 ค�ำชแ้ี จง นักเรียนเลอื กค�ำตอบทถ่ี กู ตอ้ งทีส่ ุดเพยี งค�ำตอบเดยี ว 1. ซอฟตแ์ วร์ (Software) หมายถึง ขอ้ ใด ก. ตัวแปลโปรแกรมที่เขยี นดว้ ยภาษาระดับสูง ข. ชดุ ค�ำสัง่ หรอื โปรแกรมที่ควบคุมการท�ำงานของคอมพิวเตอร์เพือ่ ให้ท�ำงานตามวตั ถุประสงค์ ค. เลขฐานสองทแ่ี ทนค�ำส่ังและขอ้ มลู ตา่ ง ๆ ในการค�ำนวณ ง. ตวั อักษรภาษาองั กฤษที่แทนค�ำสั่งในชุดตัวเลขของภาษาเคร่ือง 2. Binary หรอื รหสั เลขฐานสอง ประกอบด้วยตวั เลขในขอ้ ใด ก. เลข 2 และเลข 12 ข. เลข 1 และเลข 2 ค. เลข 2 และเลข 0 ง. เลข 0 และเลข 1 3. “0100 0000” ตัวอย่างค�ำสงั่ ภาษาเครื่องท่กี �ำหนดให้ หมายถึงขอ้ ใด ก. ด�ำเนินการบวกขอ้ มูล ข. ด�ำเนนิ การลบข้อมลู ค. เกบ็ ขอ้ มลู ลงในหน่วยความจ�ำ ง. โหลดข้อมูลจากหนว่ ยความจ�ำ 4. ภาษาใดเปน็ ภาษาโปรแกรมเชงิ วตั ถุและเป็นภาษามาตรฐานรองรบั โดย ECMA และ ISO ก. ภาษาโลโก (LOGO) ข. ภาษาโคบอล (COBOL) ค. ภาษาซชี าร์ป (C#) ง. ภาษาเบสกิ (BASIC) 5. ล�ำดับขั้นตอนเชงิ ค�ำนวณทแ่ี ปลงข้อมลู เข้าเป็นผลลัพธ์ทต่ี อ้ งการ สอดคล้องกับวธิ ีแก้ปัญหา คอื ข้อใด ก. ผังงาน ข. รหัสจ�ำลอง ค. อลั กอรทิ ึม ง. ตวั แปร
64 บทที่ 2 ขัน้ ตอนและจรยิ ธรรมในการเขยี นโปรแกรมเกมคอมพิวเตอร์ 6. ขอ้ ใด แสดงถงึ การที่วิศวกรซอฟตแ์ วร์ปฏบิ ตั ิหน้าทโี่ ดยค�ำนงึ ถึงผลประโยชนต์ อ่ ส่วนรวม ก. วศิ วกรซอฟตแ์ วรต์ ้องร่วมใจป้องกัน และต่อต้านซอฟตแ์ วร์ท่อี าจเปน็ ภัยตอ่ ส่วนรวม ข. วิศวกรซอฟต์แวรต์ ้องไมใ่ ชซ้ อฟตแ์ วร์ในทางมิชอบ ผิดกฎหมายหรือผดิ จรยิ ธรรม ค. วิศวกรซอฟตแ์ วรม์ ีอสิ ระทางความคิด ง. วศิ วกรซอฟต์แวร์หา้ มน�ำผลงาน ขอ้ มลู ของผู้อื่นมาแอบอ้างเป็นของตนเอง 7. วิศวกรซอฟตแ์ วรต์ อ้ งมจี รรยาบรรณตอ่ วิชาชพี อย่างไร ก. วศิ วกรซอฟต์แวร์ต้องมีความประพฤตชิ อบ มีความซอ่ื สตั ย์สุจรติ ข. วศิ วกรซอฟตแ์ วรต์ ้องท�ำงานเป็นทีมรว่ มกบั ผอู้ ืน่ ได้ ตง้ั มน่ั ในความถกู ต้อง มีเหตผุ ล ค. วศิ วกรซอฟตแ์ วร์รับฟงั ความคิดเห็น ขอ้ เสนอแนะ แลกเปลย่ี นแนวความคดิ ง. วิศวกรซอฟต์แวร์ตอ้ งให้ความรว่ มมอื ในการปฏบิ ัตหิ นา้ ท่เี พื่อส่งเสริมเกยี รตคิ ณุ ของวชิ าชพี 8. มาตรฐานสากลซึง่ ใชส้ �ำหรับประเมินคา่ การด�ำเนินการพฒั นาซอฟต์แวร์ คอื ขอ้ ใด ก. ISO29110: Software Engineering Standard for Very Small Entity (VSE) ข. ISO15504: Software Process Improvement and Capability Evaluation (SPICE) ค. ISO27001: Information Security Management System ง. ISO20000: IT Services Management System 9. มาตรฐานสากลในการบริหารจัดการความมั่นคง ปลอดภัยของขอ้ มูล เพือ่ ใหข้ อ้ มูลส�ำคัญขององคก์ ร เป็นความลบั ถูกตอ้ งและพรอ้ มใช้งานเสมอ คือ ขอ้ ใด ก. ISO29110: Software Engineering Standard for Very Small Entity (VSE) ข. ISO15504: Software Process Improvement and Capability Evaluation (SPICE) ค. ISO27001: Information Security Management System ง. ISO20000: IT Services Management System 10. ขอ้ ใดกลา่ วถกู ตอ้ งทส่ี ดุ เกย่ี วกบั กรอบความรขู้ องวศิ วกรซอฟตแ์ วรท์ ส่ี ถาบนั IEEE และสมาคมคอมพวิ เตอร์ ก�ำหนดไว้ ก. Confidentially - การใชค้ วามรู้อย่างถูกวัตถปุ ระสงค์ ข. Intellectual - เก็บความลบั ในงานที่ตนเองรบั ผิดชอบ ค. Competence - การท�ำงานด้านทตี่ นถนดั ท่สี ดุ และปฏิเสธงานในสว่ นทไ่ี มส่ ามารถท�ำได้ ง. Computer Misuse - ไม่ละเมดิ ลขิ สทิ ธ์แิ ละสิทธทิ างปัญญา
การสร้างเกมคอมพวิ เตอรเ์ บื้องตน้ 65 คำ� ชแี้ จง ใหน้ กั เรยี นน�ำค�ำในตารางมาเตมิ ลงในชอ่ งวา่ ง โดยใหส้ มั พนั ธก์ บั เสน้ ลกู ศร ซอฟต์แวร์ส�ำเรจ็ รูป ซอฟต์แวร์ระบบ ซอฟตแ์ วรเ์ ฉพาะทาง ตวั แปลภาษา ซอฟตแ์ วร์ประยกุ ต์ ระบบปฏบิ ัตกิ าร ซอฟต์แวร์
66 ใบงานประจ�ำหน่วยการเรยี นรู้ท่ี 2 ใบงานประจำ� หนว่ ยการเรยี นรทู้ ่ี 2 ค�ำชี้แจง นกั เรยี นฝกึ ปฏบิ ัติและตอบค�ำถามตอ่ ไปนใ้ี ห้ถกู ตอ้ ง 1. อธบิ ายความสมั พันธร์ ะหว่างซอฟต์แวรร์ ะบบกับซอฟตแ์ วร์ประยกุ ต์ พรอ้ มยกตัวอยา่ ง 2. อธิบายความหมายของภาษาคอมพิวเตอร์ 3. การเลอื กภาษาคอมพวิ เตอรท์ ่ีใช้เขียนนั้นมีหลกั ในการพจิ ารณาอยา่ งไร โปรดอธบิ าย 4. อธิบายรายละเอียดของภาษาคอมพิวเตอรท์ ่กี �ำหนดให้ว่าเหมาะกบั งานใด ภาษาคอมพิวเตอร์ รายละเอียด FORTRAN ...................................................................................................................................... C ...................................................................................................................................... ...................................................................................................................................... VISUAL BASIC ...................................................................................................................................... OOP ...................................................................................................................................... COBOL ...................................................................................................................................... BASIC ...................................................................................................................................... PASCAL ...................................................................................................................................... LOGO ...................................................................................................................................... JAVA ...................................................................................................................................... C# ...................................................................................................................................... ...................................................................................................................................... ...................................................................................................................................... ...................................................................................................................................... ...................................................................................................................................... ...................................................................................................................................... ...................................................................................................................................... ...................................................................................................................................... ...................................................................................................................................... ......................................................................................................................................
การสร้างเกมคอมพิวเตอรเ์ บ้อื งต้น 67 5. อธิบายการเขยี นรหสั จ�ำลองทกี่ �ำหนดให้ รหัสจำ� ลอง รปู แบบ ตวั อย่าง การรับขอ้ มลู ............................................................. ............................................................. ............................................................. ............................................................. ............................................................. ............................................................. ............................................................. ............................................................. การแสดงผล ............................................................. ............................................................. ............................................................. ............................................................. ............................................................. ............................................................. ............................................................. ............................................................. การค�ำนวณ ............................................................. ............................................................. ............................................................. ............................................................. ............................................................. ............................................................. ............................................................. ............................................................. การเปรยี บเทยี บ ............................................................. ............................................................. ค่าสองคา่ ............................................................. ............................................................. ............................................................. ............................................................. ............................................................. ............................................................. การท�ำงานซำ้� ............................................................. ............................................................. กรณตี รวจสอบ ............................................................. ............................................................. เงอ่ื นไขกอ่ น ............................................................. ............................................................. ............................................................. .............................................................
68 ใบงานประจำ� หน่วยการเรียนร้ทู ่ี 2 6. “เกมท�ำการรับรหัสผู้เล่น ชื่อในการเล่นและระดับการเล่น โดยเปลย่ี นระดบั การเล่นจากตัวเลขเป็น ภาษาองั กฤษ ดงั น้ี ระดับ 1 เปล่ยี นเป็น Beginner ระดับ 2 เปลี่ยนเปน็ Amateur ระดบั 3 เปล่ยี นเป็น Semi-Pro ระดบั 4 เปลย่ี นเป็น Professional ระดับ 5 เปลยี่ นเป็น World Class” นักเรียนวิเคราะห์ปัญหา เขียนผังงานและรหสั จ�ำลองจากขอ้ มลู ทก่ี �ำหนดให้ วิเคราะห์ปัญหา ................................................................................................................................................................ ................................................................................................................................................................ ................................................................................................................................................................ ................................................................................................................................................................ ................................................................................................................................................................ ................................................................................................................................................................ ................................................................................................................................................................ ................................................................................................................................................................ ผงั งาน
การสรา้ งเกมคอมพวิ เตอร์เบื้องตน้ 69 รหสั จ�ำลอง 7. ตามข้อก�ำหนดของสถาบัน IEEE และสมาคมคอมพิวเตอร์ นักวิศวกรซอฟต์แวร์ควรมีจริยธรรม อย่างไร โปรดเลอื กอธบิ าย 2 ข้อก�ำหนด พร้อมยกตัวอยา่ ง 8. ถ้านักเรียนประกอบวิชาชีพวิศวกรรมซอฟต์แวร์ นกั เรยี นพงึ ปฏบิ ตั ติ ามจรรยาบรรณในวชิ าชพี วศิ วกร ซอฟต์แวร์อยา่ งไร โปรดอธบิ าย พรอ้ มยกตัวอยา่ ง 9. มาตรฐาน ISO15504 (SPICE) มคี วามส�ำคญั ต่อการเขยี นโปรแกรมเกมอย่างไร โปรดอธบิ าย 10. มาตรฐาน ISO29110 (VSE) มีความส�ำคญั ตอ่ การเขยี นโปรแกรมเกมขนาดเล็กอยา่ งไร โปรดอธิบาย
แนวคดิ บทท่ี IDE : เป็นโปรแกรมประยุกต์ที่ถือเป็นเครื่องมืออำ�นวยความสะดวกในการ 3 เขียนโปรแกรม ประกอบดว้ ยโปรแกรมแปลภาษา และโปรแกรมแปลคำ�สงั่ .NET Framework : เปน็ แพลตฟอร์มในการพัฒนาโปรแกรมรองรบั ภาษา โปรแกรมและเครื่อง ืมอ ี่ทใ ้ชใน ดอตเน็ต Text Editor : เปน็ โปรแกรมแกไ้ ขข้อความที่ชว่ ยในการเขยี นโปรแกรม การเขียนโปรแกรมเกมคอม ิพวเตอ ์ร Visual Studio Professional : เป็นโปรแกรมที่ใช้ในการพัฒนาโปรแกรม เวบ็ ไซต์ เป็นต้น Edit Plus : เป็นโปรแกรมประเภท Text Editor ท่ีชว่ ยเขียนโคด้ ในการเขียน โปรแกรมภาษาคอมพวิ เตอร์ PHP Creator : เป็นโปรแกรมช่วยสรา้ งโค้ด PHP และบาง Java Script Notepad++ : เปน็ โปรแกรม Text Editor ทีส่ ามารถเขยี นโคด้ โปรแกรมได้ หลายภาษา Notepad 2 : เปน็ โปรแกรมที่ใชเ้ ขียนโปรแกรมในลักษณะ Text Editor เปน็ โปรแกรมแบบพกพาไมต่ ้องติดตั้ง Eclipse : เปน็ เคร่อื งมือประเภท IDE ทชี่ ่วยพัฒนา Applications Ultra Edit : เป็นโปรแกรมประเภท Text Editor สามารถแก้ไขข้อความ เขียนโค้ดรองรับการเปดิ เอกสารหลายเอกสาร Aptana : เปน็ โปรแกรมพฒั นาเวบ็ รองรบั การเขียนโคด้ ด้วยภาษา HTML5, CSS3 เป็นตน้ Crimson Editor : เป็นโปรแกรมแกไ้ ขโค้ดในภาษาตา่ ง ๆ เน้นการทำ�เวบ็ Net Beans IDE : เปน็ โปรแกรมทร่ี องรบั หลายภาษาและหลายระบบปฏบิ ตั กิ าร มีเครอ่ื งมือในการเขียนโปรแกรมอยา่ งครอบคลุม สาระการเรยี นรู้ 1. โปรแกรมและเครือ่ งมือทใ่ี ช้ในการเขียนโปรแกรมเกมคอมพิวเตอร์ 2. โปรแกรมสร้างผงั งาน สมรรถนะประจ�ำ บท 1. ปฏิบัติการใช้โปรแกรมและเคร่ืองมือที่ใช้ในการเขียนโปรแกรมเกม คอมพวิ เตอร์ 2. สร้างผังงานโดยใช้โปรแกรมได้อยา่ งถูกตอ้ งตามขนั้ ตอน จุดประสงค์เชงิ พฤติกรรม 1. อธบิ ายและยกตัวอยา่ งโปรแกรมและเคร่อื งมอื ทใ่ี ช้ในการเขียนโปรแกรม เกมคอมพิวเตอร์ 2. บอกข้นั ตอนการท�ำ งานของโปรแกรมสร้างผงั งาน 3. ยกตวั อย่างและปฏิบตั กิ ารสรา้ งผงั งาน 4. ล�ำ ดบั ขัน้ ตอนและปฏบิ ัติการใช้โปรแกรม Microsoft Visual C# 5. ปฏิบตั กิ ารเขียนโปรแกรม Hello World
โปรแกรมและเครอื่ งมือ ท่ใี ชใ้ นการเขยี นโปรแกรม เกมคอมพวิ เตอร์ บทที่ 3 โปรแกรมและเครอื่ งมือที่ใช้ในการเขยี นโปรแกรม เกมคอมพิวเตอร์ โปรแกรมและเคร่ืองมือที่น�ำมาเลือกใช้ในการเขียนโปรแกรมน้ัน มีให้เลือกตามคุณสมบัติของ โปรแกรมและความถนัดของนักเขยี นโปรแกรม โดยมรี ายละเอยี ดท่เี ก่ียวขอ้ ง ดังนี้ IDE (Integrated Development Environment) เป็นโปรแกรมประยุกตท์ ่ีถือเปน็ เครอ่ื งมอื อ�ำนวยความสะดวกในการเขียนโปรแกรม ซึ่งใน IDE ประกอบด้วยโปรแกรมแปลภาษา (Compiler) หรือ โปรแกรมแปลค�ำส่ัง (Interpreter) หรือทั้งสองอย่าง และเครื่องมือในการเขียนโค้ดโปรแกรม (Source Code Editor) ซง่ึ เป็นตัวชว่ ยเขยี นโค้ด เชน่ การพิมพ์ตัวอักษรตัวแรกของค�ำสั่งหรือฟังก์ชัน โปรแกรมก็จะข้ึนค�ำสั่งหรือฟังก์ชันท่ีขน้ึ ต้นด้วยตวั อกั ษรที่เราพิมพ์มาแสดง ให้สามารถเลือกใช้ได้ทันที เมอ่ื พิมพ์ค�ำสงั่ ฟงั กช์ นั หรอื ตัวแปร โปรแกรมจะแสดงเปน็ สที แ่ี ตกต่างกัน เชน่ หมายเหตุ สีเขียว รวมถงึ การตรวจแกจ้ ดุ บกพรอ่ ง (Debugger) การตรวจสอบความถูกตอ้ งของไวยากรณ์ เช่น อาจลืมเคร่ืองหมาย เซมิโคลอน (;) เมือ่ จบบรรทัด IDE บางโปรแกรมยงั จัดการรปู แบบการเขยี นโปรแกรมได้ด้วยเช่นกัน
72 บทที่ 3 โปรแกรมและเครื่องมือที่ใช้ในการเขียนโปรแกรมเกมคอมพวิ เตอร์ .NET Framework เป็นแพลตฟอรม์ ในการพัฒนาโปรแกรมรองรับภาษาดอตเน็ต มี Library สนับสนุนการเขียนและบริหารด�ำเนินการของโปรแกรม มีทั้งในส่วนต่อประสานกับผู้ใช้ การเช่ือมต่อ ฐานขอ้ มลู การเชอ่ื มตอ่ เครอื ขา่ ยคอมพวิ เตอร์ โดยมสี ว่ นตา่ ง ๆ ทอ่ี �ำนวยความสะดวกในการเขยี นโปรแกรม คอื ภาษาคอมพวิ เตอรท์ ส่ี ามารถท�ำงานในแพลตฟอรม์ .NET ไดแ้ ก่ ภาษา C#, VB.NET และ Jscript.NET นอกจากนนั้ ยงั มชี ดุ ค�ำสง่ั พน้ื ฐาน หรอื Library สว่ นใหญอ่ ยใู่ นรปู แบบไฟล์ incould ท�ำใหส้ ามารถเรยี กใช้ ไดท้ ุกภาษา และโปรแกรมที่เขียนจะท�ำงานบนสภาพแวดลอ้ มทจี่ ัดการโดย CLR (Common Language Runtime) ที่ท�ำหนา้ ท่ี Compile เป็นโปรแกรมท่เี หมาะสมในการเขียนโปรแกรมน้นั Text Editor เปน็ โปรแกรมแกไ้ ขขอ้ ความทชี่ ว่ ยในการเขยี นโปรแกรม เชน่ โปรแกรม Notepad โปรแกรมและเคร่ืองมือต่าง ๆ ในปัจจุบันสามารถดาวน์โหลดจากเครือข่ายอินเทอร์เน็ตได้ ซงึ่ สามารถอ่านรายละเอยี ดของโปรแกรมทต่ี อ้ งการดาวน์โหลด ถา้ เปน็ ฟรแี วร์ (Freeware) เปน็ โปรแกรม ท่ีผู้พัฒนาหรือบริษัทเจ้าของโปรแกรมอนุญาตให้ใช้งานฟรีตลอดอายุการใช้งาน แต่ถ้าเป็นแชร์แวร ์ (Shareware) เปน็ โปรแกรมทใี่ หด้ าวนโ์ หลดไปทดลองใช้ ซงึ่ จะจ�ำกดั ความสามารถบางอยา่ ง เชน่ จ�ำกดั วนั ในการทดลองใช้ฟรี ซ่ึงโดยมากมกั เปน็ 30 วนั หรือบางโปรแกรมจ�ำกัด 90 วัน นอกจากน้นั โปรแกรม ทีด่ าวนโ์ หลดมาอาจมีฟงั กช์ ันการท�ำงานท้งั หมด 5 ระดบั แต่เปิดใหท้ ดลองใช้ 3 ระดับ เป็นตน้ เพือ่ ให้ ผู้ลองใช้ได้ทดลองใช้โปรแกรม และเมื่อต้องการใช้โปรแกรมครบทุกความสามารถ ผู้ลองใช้ต้องซื้อ โปรแกรมที่สมบูรณ์จากบริษทั เจ้าของโปรแกรม ดงั ตัวอยา่ งต่อไปน้ี
การสร้างเกมคอมพวิ เตอร์เบื้องต้น 73 Visual Studio Professional โปรแกรม Visual Studio Professional เป็นโปรแกรมท่ีใช้ในการพฒั นาโปรแกรม เวบ็ ไซต์ เวบ็ แอปพลิเคชัน เวบ็ เซอร์วิส (Web Service) มเี ทคโนโลยีทนั สมยั ประยกุ ต์ไว้ ท�ำใหใ้ ช้งานได้สะดวกข้นึ ในการประมวลผลเพอ่ื แกข้ อ้ ผดิ พลาดกท็ �ำไดง้ า่ ย ถอื เปน็ IDE (Integrated Development Environment) ทบี่ รษิ ทั ไมโครซอฟตพ์ ฒั นาขน้ึ โดยสามารถใชภ้ าษาคอมพวิ เตอรท์ เ่ี ปน็ ภาษาดอตเนต็ (.NET) ในโปรแกรม เดียวกนั ตวั อยา่ ง VB.NET C++ C# J# ทั้งนี้โปรแกรมมคี ุณสมบัตเิ ปน็ Shareware สามารถดาวนโ์ หลด ผา่ นบัญชไี มโครซอฟต์เพอ่ื น�ำไปทดลองใชไ้ ด้ 90 วัน EditPlus โปรแกรม EditPlus เปน็ โปรแกรมประเภท Text Editor ทชี่ ว่ ยเขยี นโคด้ (Code) ในการเขยี น โปรแกรมภาษาคอมพิวเตอร์ ได้แก่ ภาษา C, C++, C#, Perl, HTML, Java, JSP, JavaScript, VBScript, CSS, XML, PHP, ASP และมคี วามสามารถในการดูตวั อย่างหนา้ เวบ็ (Preview) โดยไมต่ ้อง ใช้เวบ็ เบราวเ์ ซอร์ช่วย พร้อมท้งั อปั โหลด (Upload) ข้นึ เซิร์ฟเวอร์ (Server) ไดโ้ ดยตรง ท้งั น้ีโปรแกรมมี คณุ สมบตั ิเปน็ Shareware สามารถดาวนโ์ หลดผา่ นบัญชีไมโครซอฟต์เพอ่ื น�ำไปทดลองใช้ได้ 30 วนั
74 บทท่ี 3 โปรแกรมและเครือ่ งมือท่ีใช้ในการเขยี นโปรแกรมเกมคอมพวิ เตอร์ PHP Creator โปรแกรม PHP Creator เปน็ โปรแกรมชว่ ยสรา้ งโคด้ PHP และบาง Java Script เชน่ การตรวจสอบ ค่าว่างของแบบฟอร์มก่อนจัดเกบ็ ลงฐานข้อมูล พร้อมท้งั การทดสอบ Script กอ่ นการบันทกึ ทับไฟลเ์ ดิม นอกจากน้ัน ยังสามารถน�ำไฟล์ไปท�ำงานเพ่ิมเติมในโปรแกรมอื่น เช่น EditPlus หรือ Notepad++ ไดด้ ้วย ทง้ั นี้โปรแกรมมคี ณุ สมบตั เิ ป็น Freeware ท่ีสามารถดาวนโ์ หลดมาใชไ้ ดฟ้ รี Notepad++ โปรแกรม Notepad++ เป็นโปรแกรม Text Editor ท่ีสามารถเขียนโค้ดโปรแกรมได้หลาย ภาษา ได้แก่ C, C++, HTML, ASP, Java, Pascal, CSS พร้อมท้ังมี Plug-in อ�ำนวยความสะดวก ท่ีสามารถเลือกดาวน์โหลดมาช่วยในการเขียนโปรแกรมได้ มีการเปล่ียนสีค�ำส่ัง (Syntax) เม่ือพิมพ์ ค�ำส่ังถูก มีระบบเติมค�ำส่ังให้ถูกต้องโดยอัตโนมัติ (Auto-Completion) สามารถเปิดหลายไฟล์ใน
การสร้างเกมคอมพิวเตอรเ์ บอื้ งต้น 75 หนา้ ตา่ งเดยี วกนั ได้ คน้ หาขอ้ ความ เปลีย่ นข้อมลู พรอ้ มกันในทุกไฟลท์ ่เี ปดิ อยู่ สามารถใชก้ ารลากแลว้ วาง และต้ังเวลาส�ำรองข้อมูล สามารถท�ำ Snapshot อัตโนมัติ สนับสนุนค�ำส่ัง Zoom In, Zoom Out สามารถซิงค์ข้อมูลระหว่างโปรแกรม Dropbox ได้ทันที ตรวจสอบภาษาของ Code โดยอัตโนมัติ มรี ะบบจดจ�ำค�ำสั่งทพี่ ิมพห์ รือแกไ้ ขไปแลว้ และเปน็ Freeware ทนี่ กั เขยี นโปรแกรมสามารถดาวนโ์ หลด มาใชไ้ ด้ฟรี Notepad 2 โปรแกรม Notepad 2 เป็นโปรแกรมท่ีใชเ้ ขียนโปรแกรมในลกั ษณะ Text Editor มคี ณุ สมบตั ิ เปน็ โปรแกรมแบบพกพาไมต่ ้องติดต้ัง มีระบบ Syntax Highlighting ท่ชี ว่ ยอ�ำนวยความสะดวกในการ พิมพ์ค�ำส่ังต่าง ๆ เช่น มีการเปล่ียนสีข้อความเมอื่ พิมพค์ �ำส่ังถูกต้องท�ำให้ลดเวลาหาข้อผิดพลาด และ โปรแกรมมขี นาดเลก็ ไมเ่ ก่ยี วข้องกับระบบภายในเครอ่ื งคอมพวิ เตอร์ Eclipse
76 บทที่ 3 โปรแกรมและเครอ่ื งมือท่ีใชใ้ นการเขยี นโปรแกรมเกมคอมพวิ เตอร์ โปรแกรม Eclipse เปน็ เครอื่ งมอื ประเภท IDE ทช่ี ว่ ยพฒั นา Applications โดยใชภ้ าษา Java, C, C++, Python, PERL, Ruby, เขียนโปรแกรมบน Android รองรับปลกั๊ อนิ หลากหลาย มสี ภาวะ แวดล้อมสมบูรณ์ เป็นฟรีแวร์ที่สามารถดาวน์โหลดน�ำไปใช้ได้ฟรี ตัวอย่าง Eclipse IDE for Java Developers Ultra Edit โปรแกรม Ultra Edit เปน็ โปรแกรมประเภท Text Editor สามารถแกไ้ ขข้อความ เขยี นโคด้ รองรับการเปดิ เอกสารหลายเอกสารในเวลาเดยี วกนั รองรบั ไฟล์ขนาดใหญ่กว่า 4GB ได้ คน้ หา แทนค�ำ ตรวจค�ำผิด เปรียบเทียบข้อแตกต่างระหว่างไฟล์ได้ รองรับภาษา Pascal, C, C++, JAVA สามารถ อัปโหลดไฟล์ข้ึนเซิร์ฟเวอร์ผ่าน FTP ได้ทันที แต่โปรแกรมนี้เป็นแชร์แวร์ สามารถทดลองดาวน์โหลด โปรแกรมไปทดลองใช้ได้ 30 วนั Aptana
การสร้างเกมคอมพวิ เตอร์เบอ้ื งต้น 77 โปรแกรม Aptana เป็นโปรแกรมพฒั นาเว็บ รองรับการเขียนโค้ดด้วยภาษา HTML5, CSS3, JavaScript, Ruby, PHP, Python รองรบั การอปั โหลดแบบ FTP, sFTP, FTPs, Capistrano มเี ครอ่ื งมอื ในการแก้ไขข้อผดิ พลาด สามารถใชง้ านได้ทั้งระบบปฏิบัติการ Windows และ Mac OS โดยทโ่ี ปรแกรม เปน็ ฟรแี วร์ สามารถดาวนโ์ หลดมาใชง้ านได้ฟรี Crimson Editor โปรแกรม Crimson Editor เป็นโปรแกรมแก้ไขโคด้ ทีท่ �ำงานบนระบบปฏิบัติการ Windows ใชเ้ วลาในการโหลดและท�ำงานรวดเรว็ ไฟลม์ ขี นาดเล็กมาก ไม่ถงึ 2 MB รองรบั ภาษา HTML, C/C++, Perl, Java รองรบั การเปิดหลายไฟลพ์ รอ้ มกัน มรี ะบบไฮไลตค์ �ำสง่ั สามารถ Undo/Redo ไดห้ ลายระดบั มีระบบการดูล�ำดับช้ัน ล�ำดับข้ันของไฟล์ โฟลเดอร์แบบต้นไม้ มีระบบการค้นหาค�ำ แทนท่ีค�ำด้วย เง่ือนไข มีระบบตรวจสอบค�ำผิด สามารถคอมไพล์ ทดสอบโค้ดได้ในโปรแกรม สามารถอัปโหลดไฟล์ ขึ้นเซริ ์ฟเวอร์ไดโ้ ดยตรง สามารถดกู ่อนพมิ พ์ ก�ำหนดเง่ือนไข ปรบั แต่งคา่ การพิมพ์ ใช้การเข้ารหสั ภาษา แบบ Unicode และ UTF-8 ท�ำให้สนับสนุนหลายภาษา ใช้หลักการลากแล้ววาง และเป็นฟรีแวร์ ดาวนโ์ หลดมาใชไ้ ดฟ้ รี Brackets
78 บทท่ี 3 โปรแกรมและเครอื่ งมือท่ใี ชใ้ นการเขยี นโปรแกรมเกมคอมพวิ เตอร์ โปรแกรม Brackets เป็นโปรแกรมแก้ไขโคด้ (Code Editor) ในภาษาต่าง ๆ เนน้ การท�ำเว็บ สนบั สนนุ ภาษา HTML, CSS, JavaScript ทห่ี นา้ การท�ำงานจะมสี องดา้ น ดา้ นซา้ ยจะเปน็ ไฟลท์ เ่ี ปดิ แกไ้ ข ใช้งานอยู่ ด้านขวาจะเป็นส่วนของโค้ดท่ีสามารถแก้ไขได้ทันที มีการไฮไลต์สีข้อความค�ำส่ัง มีระบบ ควบคมุ การเปดิ ปดิ แทก็ วงเลบ็ มรี ะบบดกู อ่ นพมิ พ์ มเี ครอื งมอื การเลอื กสี การไลส่ ี และเปน็ ฟรแี วรท์ สี่ ามารถ ดาวนโ์ หลดไดฟ้ รี NetBeans IDE โปรแกรม NetBeans IDE เป็นโปรแกรมท่ีรองรับภาษา C, C++, PHP, JavaScript, Ruby และสามารถท�ำงานได้หลายระบบปฏบิ ัติการ Windows, Linux, Mac OS, Solaris, Java โปรแกรมนี้ รองรับภาษาและเทคโนโลยีท่ีเกี่ยวกับ Java มากท่ีสุด ท้ังการดูก่อนพิมพ์ JDK8, JDK7, Java EE7 มีเครื่องมือในการเขียนโปรแกรมอย่างครอบคลุมและการเขียนโค้ดทุกประเภท มี Auto-complete เตมิ ค�ำให้อัตโนมตั ิ มกี ารจัดรูปแบบ การไฮไลต์สีข้อความค�ำสง่ั การตรวจสอบ Syntax มแี มแ่ บบในการ เขียนโค้ด เทคนคิ การเขียนโปรแกรม เครือ่ งมือในการ Refactoring Code
การสร้างเกมคอมพวิ เตอร์เบอื้ งต้น 79 โปรแกรมสร้างผังงาน โปรแกรม Microsoft Word เมื่อเข้าสู่โปรแกรม Microsoft Word เลือกสัญลักษณ์ Flowchart ได้ที่เมนู Insert ค�ำส่ัง Shapes และเลือกสัญลกั ษณ์ที่ตอ้ งการในสว่ นของ Flowchart แสดงดังภาพ ตัวอย่างการสร้างผงั งาน “เกมท�ำการรบั รหสั ผู้เล่น ชอื่ ในการเล่นและระดับการเล่น โดยเปล่ยี นระดบั การเล่นจากตวั เลข เป็นภาษาอังกฤษ ดังนี้ ระดบั 1 เปลยี่ นเป็น Beginning ระดบั 2 เปลี่ยนเป็น Amateur ระดบั 3 เปลย่ี นเปน็ Semi-Pro ระดับ 4 เปลย่ี นเป็น Professional ระดับ 5 เปล่ยี นเปน็ World Class”
80 บทที่ 3 โปรแกรมและเครอ่ื งมือทใี่ ช้ในการเขียนโปรแกรมเกมคอมพิวเตอร์ ขั้นตอนท่ี 1 เลอื กสญั ลักษณ์ Terminator เพอื่ ก�ำหนดจุดเร่มิ ต้น (Start) ของผังงาน โดยการ คลิกค้างไว้แลว้ ลากวางในพืน้ ทีท่ �ำงานของโปรแกรม ขน้ั ตอนที่ 2 เม่ือได้สญั ลกั ษณ์เรมิ่ ต้นแลว้ ท�ำการปรับแตง่ รูปทรง เปล่ยี นรูปแบบ ทัง้ สพี ืน้ สกี รอบ แทรกข้อความที่ตอ้ งการลงในสัญลกั ษณ์
การสรา้ งเกมคอมพวิ เตอร์เบื้องต้น 81 ข้ันตอนที่ 3 ใสท่ ศิ ทางให้ผงั งานดว้ ยสญั ลกั ษณ์ Flow Line ในโปรแกรมตวั อย่างน้ี คอื Arrow โดยท�ำการคลิกค้างไว้แล้วลากวางในต�ำแหน่งทต่ี ้องการ เปลยี่ นส ี เปล่ียนขนาด เปลยี่ นหัวลกู ศร จนไดร้ ูปแบบที่ถูกตอ้ งตามมาตรฐานและสามารถส่อื สารได้เข้าใจตรงกนั
82 บทที่ 3 โปรแกรมและเครอ่ื งมอื ท่ใี ช้ในการเขยี นโปรแกรมเกมคอมพิวเตอร์ ขนั้ ตอนท่ี 4 เลือกสัญลักษณ์อ่ืนตามการท�ำงานของผังงาน ซ่ึงตวั อย่างต่อไป คอื สญั ลกั ษณ์ Process มวี ิธีการท�ำตามข้ันตอน 1 - 3 จากทก่ี ลา่ วมาแลว้ ขั้นตอนที่ 5 เลอื กสัญลักษณ์ Decision และแทรกข้อความที่ตอ้ งการ ขนั้ ตอนท่ี 6 ใชเ้ ครอ่ื งหมาย Line เพอื่ ท�ำทศิ ทางการเลอื กตามเงอ่ื นไขทโ่ี จทยต์ งั้ ไว้ โดยขณะลาก Line กดป่มุ Shift คา้ งไว้เพ่อื ท�ำให้เสน้ ตรง
การสร้างเกมคอมพิวเตอร์เบือ้ งต้น 83 ข้นั ตอนท่ี 7 เมอ่ื ก�ำกบั Flow Line สร้างสญั ลกั ษณ์ Document ให้ครบตามเง่ือนไขของโจทย์ ข้ันตอนท่ี 8 ใส่เงื่อนไข โดยใช้ Text Box หรอื กลอ่ งข้อความมาใส่ในผังงานใหค้ รบการท�ำงาน โดยเลือกทเี่ มนู Insert ค�ำสง่ั Text Box จากนัน้ จงึ เลอื ก Draw Text Box ก�ำหนดรปู แบบกลอ่ งขอ้ ความ ดงั นี้
84 บทท่ี 3 โปรแกรมและเคร่อื งมือท่ีใชใ้ นการเขียนโปรแกรมเกมคอมพิวเตอร์ “No Fill คอื ไม่มสี พี ื้น” “No Outline คอื ไม่มเี ส้นขอบ” ขน้ั ตอนท่ี 9 ใส่สญั ลักษณ์ จบการท�ำงาน (Stop) ลงในผงั งาน และตรวจสอบความถกู ตอ้ ง โปรแกรม Visio เข้าส่โู ปรแกรม Visio เลือก Basic Flowchart
การสร้างเกมคอมพวิ เตอร์เบ้อื งต้น 85 จะปรากฏหนา้ ตา่ งโปรแกรมพร้อมสัญลักษณ์ Flowchart เพอื่ สร้างผงั งาน ขั้นตอนท่ี 1 เร่ิมตน้ ผงั งานดว้ ยสัญลักษณ์ Start/End โดยการคลิกค้างไว้แล้วลากสัญลักษณ์ Start/End ไปวางในพน้ื ทีก่ ารท�ำงาน ณ ต�ำแหนง่ ที่ต้องการ ปรบั แตง่ สญั ลกั ษณ์ จากนน้ั คลกิ ขวาทสี่ ญั ลกั ษณ์ เลอื กค�ำสง่ั Edit Text เพอื่ ท�ำการแทรกขอ้ ความ
86 บทที่ 3 โปรแกรมและเครื่องมอื ที่ใชใ้ นการเขยี นโปรแกรมเกมคอมพวิ เตอร์ ข้ันตอนท่ี 2 เลือกสัญลักษณ์ Process เพื่อท�ำตามข้ันตอนการท�ำงาน ปรับแต่งสัญลักษณ์ ตามความเหมาะสมของผังงาน ซ่ึงในโปรแกรม Visio จะมีเส้นประและลูกศรที่แสดงความสัมพันธ์กับ สัญลกั ษณ์ก่อนหนา้ ให้ดู เพ่อื ให้สามารถปรบั แตง่ สัญลกั ษณไ์ ดต้ รงต�ำแหน่งท่ีต้องการ พมิ พ์ขอ้ ความลงใน สัญลักษณ์ ข้นั ตอนท่ี 3 ก�ำหนดทศิ ทางการท�ำงานด้วย Flow Line ซึ่งในโปรแกรม Visio ใชเ้ คร่อื งมือ Connector โดยการคลิกเลือกทแี่ ถบเครอื่ งมือ แลว้ ลากไปยงั สัญลกั ษณท์ ต่ี ้องการก�ำหนดทศิ ทาง ขนั้ ตอนท่ี 4 เลือกสัญลักษณ์ Decision ปรับแต่ง แทรกขอ้ ความในสญั ลกั ษณ์ ใส่ทศิ ทางการ ท�ำงาน
การสร้างเกมคอมพิวเตอรเ์ บอ้ื งตน้ 87 ข้นั ตอนท่ี 5 เลือกสัญลกั ษณ์ Document ปรบั แตง่ แทรกขอ้ ความลงสญั ลกั ษณ์ ใส่ทิศทางการท�ำงานด้วยเส้น Connector ซ่ึงโปรแกรม Visio มีความสามารถด้านการสร้าง ผงั งาน จงึ ท�ำใหก้ ารใสเ่ สน้ Flow Line ท�ำไดง้ า่ ยข้นึ ดว้ ยการคลกิ ค้างไวท้ ่สี ญั ลักษณเ์ ริม่ ตน้ และลากไปยงั จดุ เช่อื มของสญั ลกั ษณ์ปลายทางที่ต้องการก�ำหนดทิศทางการท�ำงานทันที
88 บทที่ 3 โปรแกรมและเครือ่ งมอื ท่ีใช้ในการเขียนโปรแกรมเกมคอมพวิ เตอร์ ข้ันตอนท่ี 6 เลือก Textbox ท่ีเมนู Insert เพ่ือใส่เง่ือนไขให้ครบตามการท�ำงาน และเลือก สัญลกั ษณ์ Start/End เพื่อจบการท�ำงาน พรอ้ มใสท่ ศิ ทางการท�ำงานของผงั งาน ตรวจสอบความถูกต้อง เมอื่ ตรวจสอบถกู ตอ้ งแลว้ สามารถบนั ทกึ ไฟลไ์ ดห้ ลายฟอรแ์ มต ทง้ั รปู ภาพทนี่ �ำไปใชใ้ นโปรแกรมอนื่ ไดเ้ ลย เช่น jpg gif หรอื Visio ท่สี ามารถน�ำไฟลม์ าแก้ไขได้ในภายหลัง
การสร้างเกมคอมพวิ เตอร์เบ้ืองตน้ 89 การใชโ้ ปรแกรม Microsoft Visual C# โปรแกรมที่น�ำเสนอเป็นตัวอย่าง คือ โปรแกรม Microsoft Visual C# 2010 Express เมอื่ เขา้ ส่โู ปรแกรมจะพบหน้าต่างของโปรแกรม การสร้างโปรเจกต์ (Project) ใหม่ วธิ ที ี่ 1 คลกิ ทีป่ มุ่ New Project… วธิ ีท่ี 2 เลอื กเมนู File และคลกิ ทคี่ �ำสง่ั New Project…
90 บทที่ 3 โปรแกรมและเครอ่ื งมอื ที่ใชใ้ นการเขยี นโปรแกรมเกมคอมพวิ เตอร์ วิธีที่ 3 ใชค้ ีย์ลดั (Shortcut) กดปมุ่ Ctrl ป่มุ Shift และปุม่ N พร้อมกัน จากภาพ สามารถเลือกรูปแบบในการสร้างโปรเจกตใ์ นโปรแกรมภาษา C# ดังน้ี - Windows Form Application เป็นรูปแบบการสร้างโปรเจกต์แบบ Windows Form ท่มี สี ่วนติดตอ่ กับผู้ใช้แบบกราฟกิ (GUI: Graphic User Interface) พฒั นาแบบสร้างฟอรม์ ติดตอ่ กบั ผใู้ ช้ - WPF Application หรือ Windows Presentation Foundation เปน็ รูปแบบการสรา้ ง โปรเจกตท์ ่ีใช้งานกับ .NET Framework 3.0 ขึน้ ไป ท�ำงานได้หลากหลายและงา่ ยต่อการแก้ไข - Console Application เป็นรูปแบบการสร้างโปรเจกต์ของ Text Mode คอื ใชก้ ารเขียน ค�ำส่งั ภาษา C# ในลกั ษณะคลาส (Class) และรันโปรแกรมผ่าน DOS - Class Library เป็นรูปแบบการสร้างโปรเจกต์ในลักษณะ Class ของภาษา C# ช่วยให้ โปรเจกต์อ่นื สามารถเรียกใช้งานได้ - Empty Project เป็นรูปแบบการสร้างโปรเจกต์เปล่า ท่ีภายในไม่มีส่วนประกอบใดเลย ส�ำหรบั ผูพ้ ัฒนาเพิม่ ส่วนประกอบเอง เชน่ การเพมิ่ ฟอรม์ เข้าสู่โปรเจกต์ เป็นต้น เลือก Windows Forms Application จะไดห้ นา้ ตา่ งดังภาพ
การสร้างเกมคอมพิวเตอรเ์ บอื้ งต้น 1 91 4 5 2 3 6 7 โดยมสี ่วนประกอบของหน้าต่างโปรแกรมดงั นี้ หมายเลข 1 แสดงชือ่ โปรแกรมและช่อื โปรเจกต์ (Title Bar) หมายเลข 2 แถบแสดงรายการค�ำส่งั (Menu Bar) หมายเลข 3 กลอ่ งเคร่ืองมอื ทใ่ี ชแ้ ทนรายการค�ำสง่ั ของโปรแกรม (Tool Box) หมายเลข 4 พนื้ ที่ออกแบบและเขียนโปรแกรม หมายเลข 5 ควบคมุ การท�ำงานของพน้ื ทอ่ี อกแบบและเขยี นโปรแกรม (Solution Explorer) หมายเลข 6 ก�ำหนดคณุ สมบตั ขิ องวตั ถุในการออกแบบ (Properties) หมายเลข 7 แสดงขอ้ ผดิ พลาดเม่อื คอมไพล์โปรแกรม (Error List) การบันทกึ โปรเจกต์ วิธีท่ี 1 เลอื กไอคอนรูป
Search
Read the Text Version
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286