โรโบรูกี้ - ระบบคลังความรู้ scimathว ตถ (drag...

12
รหัสโครงการ 10P22C052 โรโบรูกีโปรแกรมเพื่อสงเสริมการเรียนรู รายงานฉบับสมบูรณ เสนอตอ ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ สํานักงานพัฒนาวิทยาศาสตรและเทคโนโลยีแหงชาติ กระทรวงวิทยาศาสตรและเทคโนโลยี และ สํานักงานสงเสริมอุตสาหกรรมซอฟแวรแหงชาติ ไดรับทุนอุดหนุนโครงการวิจัย พัฒนาและวิศวกรรม โครงการการแขงขันพัฒนาโปรแกรมคอมพิวเตอรแหงประเทศไทย ครั้งที10 ประจําปงบประมาณ 2550 โดย 1. นายณัชพล กิตติกูล โรงเรียนสาธิตแหงมหาวิทยาลัยเกษตรศาสตร ศูนยวิจัยและพัฒนาการศึกษา 2. รองศาสตราจารยยืน ภูวรวรรณ คณะวิศวกรรมศาสตร มหาวิทยาลัยเกษตรศาสตร

Upload: others

Post on 22-Mar-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: โรโบรูกี้ - ระบบคลังความรู้ SciMathว ตถ (drag and drop) ซ งสามารถเข าใจได ง ายและเหมาะก

รหสโครงการ 10P22C052

โรโบรก

โปรแกรมเพอสงเสรมการเรยนร

รายงานฉบบสมบรณ เสนอตอ

ศนยเทคโนโลยอเลกทรอนกสและคอมพวเตอรแหงชาต สานกงานพฒนาวทยาศาสตรและเทคโนโลยแหงชาต

กระทรวงวทยาศาสตรและเทคโนโลย และ

สานกงานสงเสรมอตสาหกรรมซอฟแวรแหงชาต

ไดรบทนอดหนนโครงการวจย พฒนาและวศวกรรม โครงการการแขงขนพฒนาโปรแกรมคอมพวเตอรแหงประเทศไทย ครงท 10

ประจาปงบประมาณ 2550

โดย

1. นายณชพล กตตกล โรงเรยนสาธตแหงมหาวทยาลยเกษตรศาสตร ศนยวจยและพฒนาการศกษา 2. รองศาสตราจารยยน ภวรวรรณ คณะวศวกรรมศาสตร มหาวทยาลยเกษตรศาสตร

Page 2: โรโบรูกี้ - ระบบคลังความรู้ SciMathว ตถ (drag and drop) ซ งสามารถเข าใจได ง ายและเหมาะก

2

กตตกรรมประกาศ

โครงการพฒนาโปรแกรมโรโบรกนไดรบทนสนบสนนจากโครงการการแขงขนพฒนาโปรแกรม

คอมพวเตอรแหงประเทศไทยครงท 10 จากศนยเทคโนโลยอเลกทรอนกสและคอมพวเตอรแหงชาต

สานกงานพฒนาวทยาศาสตรและเทคโนโลยแหงชาต และสานกงานสงเสรมอตสาหกรรมซอฟแวร

แหงชาต ผจดทาใครขอขอบคณ ศนยเทคโนโลยอเลกทรอนกสและคอมพวเตอรแหงชาต สานกงาน

พฒนาวทยาศาสตรและเทคโนโลยแหงชาต และสานกงานสงเสรมอตสาหกรรมซอฟแวรแหงชาต ในการ

สนบสนน การพฒนาโปรแกรมโรโบรกในครงนเปนอยางสง

ขอขอบคณ รองศาสตราจารยยน ภวรวรรณทไดกรณาใหคาปรกษาในดานแนวคดในการพฒนา

โปรแกรม ตลอดจนสนบสนนการพฒนาโปรแกรมนตลอดมา

นายณชพล กตตกล

Page 3: โรโบรูกี้ - ระบบคลังความรู้ SciMathว ตถ (drag and drop) ซ งสามารถเข าใจได ง ายและเหมาะก

3

บทคดยอ

โปรแกรม Robocode เปนโปรแกรมทเปดใหใชไดทวไป (open source) ซงเปนโปรแกรมทใหผใชเปนผออกแบบและโปรแกรมภาษาจาวาเพอพฒนาปญญาประดษฐของหนยนต (artificial intelligence: AI) แลวนามาตอสกบหนยนตตวอนในลกษณะคลายคลงกบรถถงในสนามรบบนโลกเสมอนจรง แตเนองดวยผทสามารถโปรแกรมหนยนตได จาเปนตองมความรภาษาจาวา จงทาใหมผทสามารถใชไดเพยงกลมหนงเทานน

โรโบรก คอโปรแกรมทออกแบบใหกลมเดกและเยาวชน ใหสามารถโปรแกรมและออกแบบปญญาประดษฐใหกบหนยนต Robocode ไดโดยงายผานทางลกษณะของแผนภาพซงจะทาใหเดกและเยาวชน ไดเรยนรหลกการทางานของหนยนต การคานวณ การกาหนดเงอนไข ตรรกศาสตร หลกการการเขยนโปรแกรมเบองตน เปนตน ซงเกดประโยชนแกผใช และสงผลดตอวงการพฒนาหนยนต ของไทย

Page 4: โรโบรูกี้ - ระบบคลังความรู้ SciMathว ตถ (drag and drop) ซ งสามารถเข าใจได ง ายและเหมาะก

4

Abstract

Robocode is an open-sourced program which let user to design and code their own tank robot. These robots can fight each other on the simulated battle field. However, since all Robocode programming library is based on Java, users may need to have knowledge on Java programming.

Robo-Rookies is designed for student users to design and program their Robocode robot via simplified graphical programming markup. So, anyone can enjoy and learn from Robocode.

Page 5: โรโบรูกี้ - ระบบคลังความรู้ SciMathว ตถ (drag and drop) ซ งสามารถเข าใจได ง ายและเหมาะก

5

บทนา

ในชวงหลายปทผานมาวงการพฒนาหนยนตไทยไดมการเตบโตขนอยางมาก โดยเฉพาะอยางยงในภาคการศกษา ทมการนาเอาหนยนตไมโครคอนโทรลเลอรมาใหนกเรยน นกศกษา และเยาวชนใชในการเรยนรการพฒนาแอปพลเคชนงายๆ ไปจนถงการใชงานในระดบอตสาหกรรม อยางไรกตามในการใชเพอการศกษาระดบพนฐานทวไป หนยนตทนามาใชยงเปนหนยนตทเกรดตา มคณสมบตคอนขางจากด และดแลรกษาลาบาก เนองจากมความจาเปนทจะตองลดตนทนเพอใหภาคการศกษาพนฐานสามารถรองรบได แตถงกระนนกยงเปนมลคาทสงอยด

โรโบโคด (Robocode -http://robocode.sourceforge.net) เปนโปรแกรมแบบเปดเผยซอรสโคด (open source) ทจาลองการตอสของหนยนตในคอมพวเตอร ลกษณะคลางคลงกบรถถงในสนามรบ โดยผใชจะเปนผโปรแกรมหนยนต ในลกษณะของปญญาประดษฐ ดวยภาษาจาวา (Java) แลวจงนาไปตอสกบหนยนตตวอน หรอสามารถตอสกบหนยนตของเพอนได ซงโปรแกรมน มประโยชนทงในเชงสรางสรรค และพฒนาความคด ทงในการสรางรปแบบและกระบวนการคดของหนยนตทมความเปนไปไดอยางหลากหลายไมจากด หนยนตแตละตวจงมเอกลกษณของตนเอง อกทงยงใหความรเกยวกบหลกการการทางานของหนยนต การคานวณ การกาหนดเงอนไข ตรรกศาสตร การเขยนโปรแกรม ฯลฯ อกทงยงไมเสยคาใชจายใดๆ ในดานฮารดแวรและซอฟทแวรทงสน

แตเปนทนาเสยดาย เนองดวยภาษาจาวาเปนภาษาคอมพวเตอรซงผทสามารถโปรแกรมภาษานได จาเปนตองมความรในดานภาษาคอมพวเตอรระดบสง เชนการโปรแกรมเชงวตถ ทาใหกลมผใชของโปรแกรมน ครอบคลมตงแตนกเรยนระดบชนมธยมศกษาตอนปลายทมความสนใจเฉพาะในดานคอมพวเตอร จนไปถงระดบมหาวทยาลย เนองจากเปนเรองยากจงทาใหคนไมอยากเขามาศกษาเรยนร แตจะดแคไหน ถาเราสามารถทาใหโรโบโคดเปนเรองทสามารถเขาใจไดงายและชดเจน ซงจะทาใหโรโบโคดเปนเครองมอทดในการสงเสรมการเรยนร

ซอฟทแวรโรโบรก (Robo-Rookies) คอแอปพลเคชนทจะทาใหการโปรแกรมเปนเรองงาย โดยจะนาเสนอรปแบบการโปรแกรมหนยนตแบบเสมอนโรโบโคด ไมวาจะเปน การทางานของหนยนต วธการคดคานวณตางๆ ของหนยนต การกาหนดเงอนไข หรออนๆ ผานรปแบบของแผนภาพ การลากและวางวตถ (drag and drop) ซงสามารถเขาใจไดงาย และเหมาะกบกลมเดกและเยาวชนทวไป

ดงนนโรโบรกจงเปนโปรแกรมทจะทาใหกลมเดกและเยาวชน สามารถโปรแกรมหนยนตดวยภาษาจาวาไดโดยการใชลากและวางวตถ บนแผนภาพโดยไมตองใชความรทางเทคนคเฉพาะดานมากจนเกนไป อนจะนาไปสประสบการณทดในการเขยนโปรแกรม และสรางความสนใจใหกบเยาวชนเพอศกษาความรเพมเตมในระดบสงตอไป

Page 6: โรโบรูกี้ - ระบบคลังความรู้ SciMathว ตถ (drag and drop) ซ งสามารถเข าใจได ง ายและเหมาะก

6

สารบญ

หนา

บทคดยอ 3 Abstract 4 บทนา 5 วตถประสงค 7 รายละเอยดของการพฒนา 7 ทฤษฎ หลกการ เทคนก และเทคโนโลยทใช 7 เครองมอทใชในการพฒนา 8 รายละเอยดซอฟทแวรเชงเทคนก 8 ขอบเขตและขอจากด 11 คณลกษณะของอปกรณทใชกบโปรแกรม 11 กลมผใชโปรแกรม 11 ผลของการทดสอบโปรแกรม 11 ปญหาและอปสรรค 11 แนวทางการพฒนาและประยกตใชในอนาคต 12 ขอสรปและขอเสนอแนะ 12 เอกสารอางอง 12 ภาคผนวก คมอการตดตง คมอการใชงาน

Page 7: โรโบรูกี้ - ระบบคลังความรู้ SciMathว ตถ (drag and drop) ซ งสามารถเข าใจได ง ายและเหมาะก

วตถป

- เพอทาง

- เพอหลก

- เพออปก

รายละทฤษฎ

- ทฤผเรสญภาษสอนการ

- ทฤโรโจดห

- อนโรโรป การอยา

ระสงคแล

อใหกลมเดกแงการลากและอใหกลมเดกแกการทวไปขอสงเสรมการกรณทมราคา

ะเอยดขอ หลกการ เ

ษฎทางการเ รยนจะสามารญลกษณภาพทษาการเขยนโนและอธบายรออกแบบภาษฎแผนภาพบรกยงใชแนหมวดหมคาสเตอรเฟซ บรกไดออกแ ขอความ สญรคลก การลาางรวดเรว

ละเปาหมา

และเยาวชนไะวางในลกษณและเยาวชนไของการโปรแรเรยนรดานกาแพง

งการพฒเทคนก แล

รยนร รถเรยนรและทมความเกยโปรแกรมทอยสรางความเขาษาโปรแกรมพความคด (mนวคดพนฐานสงตางๆ เพอ

แบบอนเตอรเญลกษณตางาก เพอใหเปน

าย

ไทย สามารถณะของแผนภไทย สามารเขกรมผานรปแารโปรแกรมห

นา

ละเทคโนโล

ทาความเขาใวของกนไดมออกแบบเปนภขาใจไดงายกมแผนภาพเพmind-map) ของแผนภาพอใหงายตอกา

เฟซของโปรแๆ มการตอบนแอปพลเคช

ถโปรแกรมหนภาพ ขาใจถงหลกกแบบทเขาใจไหนยนตใหกบ

ลยทใช

ใจสงทสามารมากกวา นนจภาพ สามารถกวา ซงโรโบรพอใหเขาใจได

พความคด (mารเขาใจและเ

แกรมใหมควสนองตอการชนทสามารถ

นยนตโรโบโค

การการทางาไดงาย บเยาวชนโดย

รถแสดงออกจงเปนเหตผลถใชในการเรรกไดใชหลกกดงายทสด

mind-map) ใลอกใชอกดว

ามเขาใจไดงรกระทาตางๆเรยนรการใช

คดภาษาจาวา

าน การคานว

ยไมตองเสยค

มาเปนลททาใหยนการการนใน

ในการวย

งาย ผานๆ เชนชงานได

าไดโดยงายผ

วณ โครงสรา

คาใชจายในก

7

ผาน

งและ

การซอ

Page 8: โรโบรูกี้ - ระบบคลังความรู้ SciMathว ตถ (drag and drop) ซ งสามารถเข าใจได ง ายและเหมาะก

8

เครองมอทใชในการพฒนา

- Adobe Flash CS3 ใชเพอพฒนาอนเตอรเฟซและเขยนโคดของโปรแกรม

- Adobe Photoshop CS3 ใชเพอสรางภาพประกอบการพฒนาอนเตอรเฟซ

- Java Runtime Environment (JRE) เปนแพลตฟอรมสาหรบการคอมไพลหนยนตทเขยนใหเปนแพคเกจสาหรบใชงานในโรโบโคด และยงเปนแพลตฟอรมทโรโบโคดจาเปนตองใชในการรนอกดวย

- Robocode 1.4 ขนไป เปนโรโบโคดทรองรบไลบราร JuniorRobot ซงโรโบรกใช

- mdm Zinc V2.5 เปนไลบรารสาหรบการอาน/เขยนไฟลของแพลตฟอรมแฟลช

รายละเอยดซอฟทแวรเชงเทคนก

Input/Output Specification - การสรางแผนภาพโปรแกรมจะรบขอมลจากผใชผานเมาสและคยบอรดเปนหลก - การบนทกโปรแกรมแผนภาพ จะบนทกเปนรปแบบซอรสโคดภาษาจาวา - การแปลงซอรสโคดภาษาจาวาออกมาเปนแผนภาพ จะตองเปนซอรสโคดทสรางจากโปรแกรมโรโบ

รกเทานน

Functional Specification - Editor Interface

เปนการรบขอมลจากผใช เพอสรางแผนภาพของโปรแกรมตามทผใชตองการ - Robo-Rookies Pre-compiler

คอสวนททาการแปลงแผนภาพโปรแกรมทผใชสราง เปนซอรสโคดภาษาจาวา เพอเตรยมนาไปคอมไพลอกครงหนง

- Java Source Code Loader การแปลงซอรสโคดภาษาจาวา ออกมาเปนแผนภาพโปรแกรม

- Robocode Launcher เปนสวนททาหนาทเรยกโปรแกรมโรโบโคดขนมาทางานเพอทดสอบโปรแกรม

Page 9: โรโบรูกี้ - ระบบคลังความรู้ SciMathว ตถ (drag and drop) ซ งสามารถเข าใจได ง ายและเหมาะก

Softwarเนองดวเปนหลกออกแบบหรอ UM

โปรแกรแตกตาง

- สวนการใชโโปรRooเลอLib

- สวนใหมประ

ทงนสวนของผใช

นอกจากโครงสรา(overheโปรแกร

re Design Sยโรโบรกพฒก และรปแบบบซอฟทแวรจML ไดอยางซ

มจะถกแบงองกนไป ซงหล

นของการเขยรลากวางคาสโครงสรางขอรแกรมทตองokies Pre-coอกทจะเรยกโrary เพอเรยนอนๆ ของโปม ซงทาหนาทะกอบการทา

นตางๆ จะทา จนกวาผใชจ

กน ในสวนขอางเชงวตถขอad) จากการม

Specificatioฒนาอยบนแพบการโปรแกรจงอยบนพนฐซอฟทแวรบน

ออกเปนฉาก ลกๆ แลวจะแ

ยนโปรแกรม สงตางๆ การทมลเชงวตถ (การเรยบรอยompiler และใปรแกรมเกาขกขอมลจากฮปรแกรมทเหทในการรบคงานใหกบสว

างานรวมกนบจะปดโปรแก

องโครงสรางของแพลตฟอรแปลงขอมลไ

on พลตฟอรมแฟรมกไมไดมรปฐานของอนเตนแพลตฟอรม

(scene) ตามแบงออกเปน

(Editor) ซงจทางานในสว(Data Objecยแลว จงนาขใช Zinc Librขนมาจากหนฮารดดสกมาลอ ไมวาจะเาการตงคาตาวนเขยนโปรแ

บนแฟลชแอปรมดงแสดงใน

ขอมลเชงวตถมแฟลชโดยตไปมา และคว

ฟลช ซงเปนแปแบบของกาตอรเฟซเปนหอนๆ ทวไป

มรปแบบของ 2 สวน อนไ

จะเปนหนาทนนจะมงเนนt Model) ขอขอมลเหลานแrary ในการเขนาอน หนานจเปนโปรแกรมเปนหนาเมนหางๆ (configuแกรม (Editor

ปพลเคชนเดนภาพท 1 (ห

ถ (DOM) ขอตรง เพอเพมวามงายในกา

แพลตฟอรมทารโปรแกรมเชหลก และไมส

งแฟลช ซงแตดแก

ทใหผใชสรางโนการรบคาตางโรโบรก หลแปลเปนภาษขยนลงไฟลอจะทาการใชโมโรโบรก หลก หนาปรurations) จาr) อกชนหนง

ยว และสลบหนาถดไป)

องโปรแกรมทมประสทธภาพรพฒนา ปรบ

ทอยบนพนฐาชงวตถ (OOสามารถแจกแ

ตละฉากจะท

โปรแกรมโรโางๆ จากผใชงลงจากทผใชไษาจาวาโดยใชอกครงหนง นโมดล Java L

รบคาตางๆ หกผใช เพอนา

ฉากไปมาตา

ทผใชโคดลงไพในการทางาบปรง และแก

านของอนเตอP) ทชดเจนนแจงออกมาเป

าหนาทตางๆ

โบโคดของตวงานแลวจดจไดทาการสราชโมดล RoboนอกจากนหากLoader และ

หรอหนาสรางาไปเปนขอม

ามการเรยกใช

ไปนน ยงประาน ลดโอเวอกไข (debug)

9

อรเฟซนก การปนวตถ

วเองโดยาไวโดยางo-กผใชZinc

งหนยนตมล

ชงาน

ะยกตรเฮด

Page 10: โรโบรูกี้ - ระบบคลังความรู้ SciMathว ตถ (drag and drop) ซ งสามารถเข าใจได ง ายและเหมาะก

10

ภาพท 1 : แผนภาพแสดงโครงสรางโปรแกรมโรโบรก

Page 11: โรโบรูกี้ - ระบบคลังความรู้ SciMathว ตถ (drag and drop) ซ งสามารถเข าใจได ง ายและเหมาะก

11

ขอบเขตและขอจากด

- ผใชตองเปนผมความรพอสมควรในดานการใชคอมพวเตอรเบองตน - ผใชมความเขาใจวธการทางานของโปรแกรมเบองตนในลกษณะแผนภาพได - ผใชตองทาการลงโรโบโคดและ Java Runtime Environment (JRE) ดวยตนเอง

คณลกษณะของอปกรณทใชกบโปรแกรม

คอมพวเตอรใดๆ ทรองรบแพลตฟอรม Adobe Flash เวอรชน 9.0 ขนไป และรองรบแพลตฟอรม Zinc เวอรชน 2.5 ขนไป

กลมผใชโปรแกรม

เยาวชน นกเรยน นกศกษาทตองการเรยนรการเขยนโปรแกรม แนวคดของการออกแบบปญญาประดษฐ แตไมมความรพนฐานดานภาษาจาวา

ผลของการทดสอบโปรแกรม

จากการทดสอบการตดตงและใชงานโรโบรกบนคอมพวเตอรทใชระบบปฏบตการณ Windows XP ทมการลง Java Runtime Environment และ Robocode 1.4 ไวเรยบรอยแลว พบวาสามารถใชงานตางๆ ตามคณสมบตไดครบถวนสมบรณ

ปญหาและอปสรรค

ไมม

Page 12: โรโบรูกี้ - ระบบคลังความรู้ SciMathว ตถ (drag and drop) ซ งสามารถเข าใจได ง ายและเหมาะก

12

แนวทางการพฒนาและประยกตใชในอนาคต

- นาซอฟทแวรชดนไปพฒนาเปนหลกสตรเพอใชในการเรยนการสอนในโรงเรยนทวไป - พฒนาใหสามารถเรยกใชบนเวบเบราวเซอรไดโดยตรง เพอทจะไมจาเปนตองตดตงโปรแกรม - พฒนาใหรองรบคาสงหรอรปแบบการโปรแกรมทเพมมากขนหรอซบซอนขนได

ขอสรปและขอเสนอแนะ

โรโบรก คอซอฟทแวรทชวยใหนกเรยน นกศกษา เยาวชน หรอผสนใจสามารถเขยนโปรแกรมควบคมหนยนตโรโบโคดไดโดยไมจาเปนตองมความรในการเขยนโปรแกรมภาษาจาวา จงเหมาะสาหรบการพฒนาการเรยนรการโปรแกรมใหแกเยาวชน

เอกสารอางอง 1. Derek Franklin, Jobe Makar (2002),Macromedia Flash MX Action Scripting Advanced Trainig From The Source 2. กาพล ลลาภรณ, สรพงษ วระรกษณเดชา (2003), Flash MX ActionScript Inspire, สานกพมพโปรวชน 3. http://robowiki.net/cgi-bin/robowiki Accessed 2 Dec 2007 4. http://computing.net/programming/wwwboard/forum/15532.html Accessed 18 Dec 2007. 5. http://www.adobe.com/devnet/central/articles/regex_03.html Accessed 1 Jan 2008.