Thursday, December 11, 2014

Interface

          เมื่อต้องการให้มี Class หลายๆคลาสที่มี Method รูปแบบเดียวกัน เราไม่จำเป็นต้องสร้างทุก Class และเขียนใหม่ทั้งหมด แต่จะใช้การสร้าง Interface ทำให้มีแม่แบบของ Class ไว้เป็นหลัก จากนั้นจะสร้างการ Implement interface ให้กับคลาสที่ต้องการก็จะได้ Class ที่มี Method รูปแบบเดียวกันเหมือนแม่แบบ


 คลิปการสร้าง Interface

Friday, December 5, 2014

Mouse Event







           เป็นหลักการสร้าง Event ของ Mouse 3 แบบ ได้แก่ Mouse Down , Mouse Move และ Mouse Up ซึ่งจะต้องทำการเซ็คสร้าง event

Thursday, December 4, 2014

User Control

               ในการออกแบบ User Interface (UI) จะมีเครื่องมือที่มาช่วยในการออกแบบนั่นคือ User Control หลักการใช้ User Control มีดังคลิปต่อไปนี้





         จากในคลิป สิ่งที่ต้องการทำคือ แสดงผลของการพิมพ์ข้อความ '1234' ใน text box หลังจากที่กดปุ่ม get_text จะปรากฏข้อความ '1234' อยู่ด้านล่างปุ่ม get_text


ภาพตัวอย่างแสดงผลลัพธ์


วิธีการทำ 

 1. จากโปรแกรม Visual Studio สร้าง Project C# โดยเลือกโหมด Windows Form Application
 2. สร้าง User Control โดยคลิกขวาที่ชื่อโปรเจค > Add > New Item...  > User Control จากนั้นจะปรากฏอีกหน้าต่างของ User Control
    ใส่ภาพที่ต้องการ เลือกจาก Tool Box เลือก Picture Box เพื่อทำสร้างพื้นที่ขอบเขตการเปลี่ยนรูป จากนั้นกำหนดพื้นของรูปที่จะปรากฏให้ปรากฏเต็ม User Control โดยเลือก Properties > Dock > Center และเปลี่ยนรูปตามต้องการ
    นำกล่องข้อความ Text Box จาก Tool Box มาใน User Control ไว้สำหรับคีย์ข้อมูลที่ต้องการ
และ Label สำหรับการตั้งชื่อของกล่องนี้ เพื่อทำให้ User ทราบ
3 . หลังจากสร้างองค์ประกอบของ User Control สำเร็จ เราจะลากเข้ามาในหน้า Form โดยเลือกที่ Tool Box ด้านบนสุดจะมี ชื่อของ User Control ที่สร้าง ต่อมาสร้าง button ไว้สำหรับการกดเพื่อแสดงค่าที่พิม และ label เป็นตำแหน่งที่จะแสดงค่า

ภาพแสดงองค์ประกอบที่อยู่ใน Form1
4. สร้างเหตุการณ์จากการคลิกปุ่ม button1
          ให้คลิกขวาไปที่ User Control เลือก View Code สร้างฟังก์ชั่นชื่อ getUserControlText() ภายในฟังก์ชั่นเป็นการ return ข้อความของ Text Box ที่อยู่ใน User Control จากนั้น double click ไปที่ button1 ในหน้า Form1 พิมพ์ (ชื่อของlabel1ที่ต้องการแสดงค่า).Text = (ชื่อของ User Control).getUserControlText() เพื่อกำหนดให้ label1 แสดงค่าตามฟังก์ชั่น getUserControlText() ซึ่ง return ข้อความใน Text Box

ภาพแสดงโค้ดภายใน User Control สร้าง ฟังก์ชั่น Return Text


                                     ภาพแสดงโค้ดของ Form1 เหตุการณ์ Click


เมื่อเสร็จการ Code ให้กด Start ก็จะได้ผลลัพธ์จุดประสงค์ตามข้างต้น








 
 

Saturday, November 1, 2014

คำแนะนำพี่ TA วันศุกร์ที่ 31 ตุลาคม 2557

สรุปการปรึกษา วันศุกร์ที่ 31 ตุลาคม 2557

- อธิบายคร่าวๆเกี่ยวกับเรื่อง Class



- แนะนำให้ใช้ List แทนการใช้ Array ปกติ

- แนะนำเกี่ยวกับ n-ary Tree เพื่อนำมาใช้เป็นรูปแบบของ Block โดยศึกษาจากเว็บ
https://www.safaribooksonline.com/library/view/c-cookbook/0596003390/ch10s07.html

Thursday, October 30, 2014

ความคืบหน้า วันพฤหัสบดีที่ 30 ตุลาคม 2557

1. วิธีการ drag and drop ศึกษาจากคลิปวีดีโอดังต่อไปนี้
 
 
2. design โปรแกรมแบบคร่าวๆ
 
- การทำงานภายใน
 
 
- ตัวอย่างปุ่มต่างๆ
 
 
- ตัวอย่างหน้าตาของปุ่มต่างๆ
 
 
3. เว็บที่ใช้ศึกษา C#
 

Saturday, October 18, 2014

คำแนะนำพี่ TA วันศุกร์ที่ 17 ตุลาคม 2557

สรุปการปรึกษา วันศุกร์ที่ 17 ตุลาคม 2557

- เริ่มสอบfinalตอน 26 พย  ถ้านับอาทิตย์หน้าเป็นอาทิตย์แรก จนถึงอาทิตย์ก่อนสอบ 1 อาทิตย์ (อาทิตย์สอบอ่านหนังสือ) จะมีเวลา 5 สัปดาห์ และ 15 ธค เปนวันpresent project ดังนั้นเรามีเวลาอีกหลังจากสอบfinalอีก 1อาทิตย์
- ใช้โปรแกรม Virtual Studio เขียนโค้ด
- ใช้ภาษา xaml ในการสร้างพวกปุ่มต่างๆ / C# สร้างการ drag and drop บลาๆ


อาทิตย์หน้าให้แบ่งงานกันลองไป
1. design ปุ่มที่คิดว่าเป็นไปได้
2. หาวิธีการ drag and drop

Wednesday, October 15, 2014

วางแผนโปรเจค

วันศุกร์ที่ 10 ตุลาคม 2557

นัดพบกับรุ่นพี่TAเพื่อนัดคุยวางแผนการทำโปรเจคครับ จากนั้นจะต้องหา
1. สิ่งที่จะใช้พัฒนาsoftware เช่น ภาษาที่ใช้ , โปรแกรมที่จะพัฒนา
2. แบ่งงาน / แผนคร่าวๆ
3. gantt chart ไม่ต้องละเอียด
4. นำ URL ของ blog เอาURLให้พี่ / ให้ใส่ชื่อกลุ่ม สมาชิก / โพสต์การกระทำในแต่ละครั้ง
รายงานพี่TAในอาทิตย์ถัดไป

Tuesday, October 14, 2014

Easy AI For Game

        
         สำหรับโครงงานนี้ มีจุดประสงค์เพื่อเปลี่ยนการบังคับรถถัง ในเกม Robocode เปลี่ยนจากการเขียนโค๊ดซึ่งบังคับหุ่นยนต์ภาษา Java แบบปกติ กลายเป็นเป็นการลากปุ่มคำสั่งต่างๆไปวางแทน เป็นประโยชน์ต่อผู้ใช้ไม่ต้องศึกษาการเขียนโค๊ดและภาษา Java เอง และสามารถเข้าใจโปรแกรมได้ง่ายมากขึ้น


      
       Robocode คืออะไร?



Robocode

            เป็นโปรแกรมเกมสำหรับการแข่งขันระหว่างหุ่นยนต์รถถัง ระหว่าง 2 ฝ่ายหรือมากกว่านั้น ตัวโปรแกรมเป็นลักษณะ Open source สามารถแก้ไขโค้ด Java เพื่อเขียนบังคับหุ่นยนต์ให้มีลักษณะเป็น AI ได้ เช่น ถ้ารถถังแสกนเจอตำแหน่งของฝ่ายตรงข้าม ให้ทำการยิ่ง 1 ครั้งและเคลื่อนที่ไปทิศเหนือ 100 หน่วย ถ้ารถถังชนกำแพงให้ถอยออก50หน่วย และเลี้ยวซ้ายไปแทน เป็นต้น

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

ภาพตัวอย่างโคดภาษา Java ควบคุมหุ่นยนต์


  ภาพรถถังแข่งขันกัน ตรงกลางเป็นสมรภูมิที่ลักษณะเป็นสี่เหลี่ยม
ด้านขวาเป็นแถบชื่อและพลังชีวิตที่เหลือ ถ้าหากพลังหมดจะแพ้ไป

     จุดประสงค์ของโปรเจค

      จากที่กล่าวมาจะเห็นได้ว่า เมื่อเราจะทำการควบคุมให้กับหุ่นยนต์ เราต้องเขียนโค้ดเพื่อสั่งมัน สำหรับโปรเจคนี้เราจะเปลี่ยนจากโค้ดกลายเป็นปุ่มแทน และบนปุ่นจะมีคำสั้นๆให้ User เข้าใจได้ง่าย ซึ่งมีประโยชน์ต่อ User ไม่จำเป็นต้องศึกษาภาษา Java การเขียนโปรแกรมก่อน ก็สามารถเล่น Robocode ได้ 
       ตัวอย่างเช่น  เมื่อต้องการสั่งให้หุ่นยนต์เคลื่อนไปด้านบน 100 หน่วย เราจะเปลี่ยนจากการเขียนโค้ดให้เคลื่อนตำแหน่งไปด้านบน 100 หน่วย เป็นปุ่มที่เขียนว่า เคลื่อนที่ไปด้านบน 100 หน่วยแทน ผู้ใช้เพียงแค่ทำการลากปุ่มไปยังตำแหน่ง และลำดับคำสั่งตามต้องการ

ตัวอย่างภาพการโค้ดเพื่อสั่งหุ่นยนต์ 

จะกลายเป็น 
ตัวอย่างภาพปุ่มสั่งหุ่นยนต์